Question Comment utiliser les paquets de composition dans le codeigniter?


J'ai suivi cet article: http://philsturgeon.co.uk/blog/2012/05/composer-with-codeigniter

Mais je reçois Fatal error: Class 'Buzz\Browser' not found.

Qu'est-ce qui manque à son poste?

Mon contrôleur ou application n'est pas placé sous un nom. J'espérais juste pouvoir utiliser ce paquet dans l'action d'un contrôleur dans un cadre non nommé.


12
2017-12-06 10:44


origine


Réponses:


Crédit à @jmadsen

Ceci est possible en obtenant juste l'ordre de chargement correct:

/*
 * --------------------------------------------------------------------
 * LOAD THE BOOTSTRAP FILE
 * --------------------------------------------------------------------
 *
 * And away we go...
 *
 */
// Composer Autoloader
require FCPATH . 'vendor/autoload.php';

require_once BASEPATH.'core/CodeIgniter.php';

/* End of file index.php */

33
2018-03-06 10:18



Pour CodeIgniter 3.x et le compositeur, c'est suggéré juste mettre $config['composer_autoload'] à TRUE ou un chemin personnalisé dans application/config/config.php.

Il semble que CI assume la vendor répertoire est dans le application annuaire. Ce n'était pas mon cas. J'ai fait ce qui suit:

$config['composer_autoload'] = 'vendor/autoload.php';


15
2017-11-15 16:07



EDIT: Merde, j'ai juste dit à peu près exactement la même chose que @Tjorriemorrie

Si vous avez suivi toutes les autres instructions correctement, il vous suffit d'ajouter le code suivant près de la fin votre fichier index.php:

/*
 * --------------------------------------------------------------------
 * COMPOSER AUTOLOAD
 * --------------------------------------------------------------------
 */
include_once './vendor/autoload.php';

... assurez-vous simplement de le placer dans avant le fichier CodeIgniter Bootstrap s'appelle:

/*
 * --------------------------------------------------------------------
 * LOAD THE BOOTSTRAP FILE
 * --------------------------------------------------------------------
 *
 * And away we go...
 *
 */
 require_once BASEPATH.'core/CodeIgniter.php';

7
2018-03-20 06:55



Vous pouvez ajouter directement le Composer Autoloder dans votre contrôleur:

// Composer Autoloader
require FCPATH.'vendor/autoload.php';

4
2017-12-12 17:05



Eh bien, dans Codeigniter3.x, vous pouvez facilement faire cela en allant dans l'application / config / config.php et chercher cette ligne

$config['composer_autoload'] = FALSE;

Assurez-vous de le définir sur TRUE et juste après, vous avez besoin de ceci:

require_once APPPATH.'vendor/autoload.php';

Donc, vous obtenez quelque chose comme ça:

/*
|--------------------------------------------------------------------------
| Composer auto-loading
|--------------------------------------------------------------------------
|
| Enabling this setting will tell CodeIgniter to look for a Composer
| package auto-loader script in application/vendor/autoload.php.
|
|   $config['composer_autoload'] = TRUE;
|
| Or if you have your vendor/ directory located somewhere else, you
| can opt to set a specific path as well:
|
|   $config['composer_autoload'] = '/path/to/vendor/autoload.php';
|
| Note: This will NOT disable or override the CodeIgniter-specific
|   autoloading (application/config/autoload.php)
*/
$config['composer_autoload'] = TRUE;
require_once APPPATH.'vendor/autoload.php';

Assurez-vous que votre dossier fournisseur se trouve dans le dossier de l'application et que vous êtes prêt à partir.

J'ai récemment découvert que vous pouviez simplement définir $ config ['composer_autoload'] = TRUE; et placez votre dossier fournisseur dans le dossier de l’application et c’est ça.


2
2018-04-28 22:30



j'utilise Forfait compositeur Kenjis, et il met le répertoire du fournisseur hors de la racine. Comme il n'y a pas de constante prédéfinie (que je connaisse) pour la racine, j'ai utilisé ce qui suit:

$root = getcwd();
$config['composer_autoload'] = "$root/vendor/autoload.php";

1
2017-10-19 07:28



Vous pouvez charger automatiquement le fichier de classe de deux manières à l'aide de composer.

  1. Ajoutez la ligne ci-dessous dans index.php dans le répertoire racine.

    require FCPATH . 'vendor/autoload.php';
    
  2. Ou chargement automatique directement dans le contrôleur où vous souhaitez utiliser.

    defined('BASEPATH') OR exit('No direct script access allowed');
    
    require FCPATH . 'vendor/autoload.php';
    
    class Home extends CI_Controller {...}
    

0
2018-05-05 16:36