namespace library create composer php namespaces codeigniter-2 composer-php

php - library - ¿Cómo usar paquetes de compositor en codeigniter?



install library composer codeigniter (6)

He seguido este artículo: http://philsturgeon.co.uk/blog/2012/05/composer-with-codeigniter

Pero obtengo el Fatal error: Class ''Buzz/Browser'' not found .

¿Qué falta en su publicación?

Mi controlador o aplicación no tiene espacio de nombre. Esperaba poder usar ese único paquete en la acción de un controlador en un marco sin espacios de nombres.


Puede agregar directamente el Autoloder Composer en su controlador:

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


Crédito a @jmadsen

Esto es posible con solo obtener el orden de carga correcto:

/* * -------------------------------------------------------------------- * 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 */


EDITAR: Maldición, acabo de decir exactamente lo mismo que @Tjorriemorrie

Si ha seguido todas las demás instrucciones correctamente, todo lo que necesita hacer es agregar el siguiente código cerca del final del archivo index.php:

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

... solo asegúrate de colocarlo antes de que se llame al archivo CodeIgniter Bootstrap:

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


Para CodeIgniter 3.xy el compositor, se sugiere simplemente configurar $config[''composer_autoload''] en TRUE o una ruta personalizada en application/config/config.php .

Parece que CI supone que el directorio del vendor está dentro del directorio de la application . Ese no era mi caso. Hice lo siguiente:

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


Bueno, en Codeigniter3.x puedes hacerlo fácilmente yendo a la aplicación / config / config.php y buscar esta línea

$config[''composer_autoload''] = FALSE;

Asegúrate de establecerlo en TRUE e inmediatamente después de que lo requieras, una vez esto:

require_once APPPATH.''vendor/autoload.php'';

Entonces obtienes algo como esto:

/* |-------------------------------------------------------------------------- | 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'';

Solo asegúrate de tener la carpeta del proveedor en la carpeta de la aplicación y listo.

Recientemente descubrí que solo puedes configurar $ config [''composer_autoload''] = TRUE; y coloque su carpeta de proveedor en la carpeta de la aplicación y eso es todo.


Estoy usando el paquete de compositor Codeigniter de Kenjis , y coloca al directorio de proveedores fuera de la raíz. Como no existe una constante predefinida (que yo sepa) para la raíz, utilicé lo siguiente:

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