Как использовать пакеты композиторов в кодеригенере?

Я следил за этой статьей: http://philsturgeon.co.uk/blog/2012/05/composer-with-codeigniter

Но я получаю Fatal error: Class 'Buzz\Browser' not found .

Что не хватает на его должности?

Мой контроллер или приложение не имеют имен. Я надеялся, что просто смогу использовать этот пакет в одном действии контроллера в инфраструктуре без имен.

Кредит @jmadsen

Это возможно, просто получив правильный порядок загрузки:

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

Для CodeIgniter 3.x и composer предлагается просто установить $config['composer_autoload'] в TRUE или пользовательский путь в application/config/config.php .

Кажется, что CI предполагает, что каталог vendor находится в каталоге application . Это было не мое дело. Я сделал следующее:

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

EDIT: Черт, я просто сказал почти точно то же самое, что @Tjorriemorrie

Если вы правильно следовали всем другим направлениям, все, что вам нужно сделать, это добавить следующий код рядом с вашим файлом index.php:

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

… просто убедитесь, что вы вставили его перед тем, как вызывается файл Bootstrap CodeIgniter:

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

Вы можете напрямую добавить автомодель Composer в свой контроллер:

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

Ну в Codeigniter3.x вы можете легко это сделать, зайдя в application / config / config.php и ищите эту строку

 $config['composer_autoload'] = FALSE; 

Убедитесь, что вы установили значение TRUE и сразу после этого вы требуете:

 require_once APPPATH.'vendor/autoload.php'; 

Итак, вы получаете что-то вроде этого:

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

Просто убедитесь, что у вас есть папка вашего поставщика в папке приложения, и вам хорошо идти.

Недавно я узнал, что вы можете просто установить $ config ['composer_autoload'] = TRUE; и поместите папку своего поставщика в папку приложения, и все.

Я использую компилятор Kenjis codeigniter , и он помещает каталог поставщика в корневой каталог. Поскольку для корня нет предопределенной константы (которой я знаю), я использовал следующее:

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