2016-11-23 4 views
2

Я пытаюсь добавить внешнюю библиотеку в symfony. Я попытался это на приложении/autoload.php:Добавить внешнюю библиотеку в symfony

$loader->add('LibCokeId',__DIR__ . '/../vendor/libcokeid/libcokeid/lib'); 

Однако, когда я пытаюсь использовать его в контроллере:

use libCokeId\LibCokeId 

Libcokeid::init() 

Я получаю ошибку заявления использования мисс.

Любая помощь?

+1

как вы устанавливаете библиотеку? Этого не существует на упаковке? У него есть репо на github? У вас есть автозагрузчик? Вы можете указать полную ошибку? Извините за слишком много вопросов :) – Matteo

+0

@Matteo это не на packagist и не имеет композитора и github repo. Ошибка: Попытка загрузить класс «LibCokeId» из пространства имен «libCokeId». Вы забыли «использовать» заявление для «LibCokeId \ LibCokeId»? –

ответ

5

В ситуации, когда у вас есть библиотека, которая не использует композитор, и вы не можете получить ее из packagist, вы можете манипулировать Composer autoload.

Просто добавьте класс в composer.json файлов, в качестве примера:

"autoload": { 
    "psr-0": { "": "src/" }, 
    "files": [ 
     "vendor/folder/my_custom_lib/myFiles.php", 
     "vendor/libcokeid/libcokeid/lib/libCokeId/LibCokeId.php" 
    ] 
}, 

ИЛИ вы можете Autoload всю папку в composer.json:

"autoload": { 
    "psr-0": { "": "src/" }, 
    "classmap": [ 
     "vendor/libcokeid/libcokeid/lib" 
    ], 
}, 

Не забудьте сделать композитор установить после установки этого.

Надеюсь, что эта помощь.

+3

Это идеальное решение. Не забудьте сделать установку композитора после установки этого параметра. Спасибо –

+1

Я добавлю комментарий от @ SergioGonzález, так как он внес изменения для меня :) – Muc

+0

hi @Muc благодарит за обновление – Matteo

Смежные вопросы