Я создаю плагин CakePHP3, и я использую библиотеку, которую я написал, которая использует автозагрузку PSR-4. Если мне требуется библиотека в компоновщике приложения, она автоматически загружается, и я могу использовать ее в любом месте моего приложения, включая плагин. Когда я пытаюсь выполнить его через компоновщик плагинов, он устанавливает отлично, и композитор не дает никаких ошибок, но, похоже, не автозагружается. Когда я иду на страницу, управляемую плагином, который использует библиотеку, я получаю ошибку, что класс не найден.CakePHP3 Plugin autoload class
Я делаю что-то неправильно? Я проверил vendor/composer/autoload_psr4.php
в моей папке плагина, и мой класс находится в этом файле. Я также запускал composer dump-autoload
как в каталоге приложений, так и в каталоге плагинов, но это не помогло.
Я испек плагин с cake bake plugin MyPlugin
, а затем отредактировал раздел требуемого компонента composer.json плагина, чтобы включить мою библиотеку. Затем я запустил composer update
и установил библиотеку до plugins/MyPlugin/vendor/mylibrary
без ошибок.
Как вы устанавливаете плагин? Например, вы добавили свой плагин в упаковщик? –
плагин не в пакете, но библиотека, которую я пытаюсь потребовать в плагине, находится в packagist –
У меня нет времени прямо сейчас для полного ответа, но ваш лучший выбор - puttnig ваш плагин в packagist или с помощью vcs композитор. В противном случае композитор не имеет понятия, где найти свой код и как рассчитать его зависимости. –