CakePHP3插件自动加载类

时间:2015-06-28 21:18:21

标签: cakephp composer-php autoload cakephp-3.0 psr-4

我正在制作一个CakePHP3插件,而且我正在使用我编写的使用PSR-4自动加载的库。如果我在应用程序的composer.json中需要库,它会自动加载,我可以在我的应用程序中的任何地方使用它,包括插件。当我尝试通过我的插件composer.json尝试它时,它安装得很好,作曲家没有错误,但它似乎没有自动加载。当我进入由使用该库的插件控制的页面时,我得到了找不到该类的错误。

我做错了吗?我在我的插件文件夹中检查了vendor/composer/autoload_psr4.php,我的班级在该文件中。我还在应用程序目录和插件目录中运行composer dump-autoload,但它没有帮助。

我用cake bake plugin MyPlugin烘焙了该插件,然后编辑了该插件的composer.json的require部分以包含我的库。然后我运行composer update并将库安装到plugins/MyPlugin/vendor/mylibrary,没有错误。

2 个答案:

答案 0 :(得分:0)

我将我的烘焙插件移动到自己的git repo中,然后将该repo添加到我的应用程序的composer.json文件中,并添加了我的插件作为要求。然后我在我的app目录中运行了[for="read_more"],我的插件安装了它的依赖项到vendor目录中。然后我只需要在composer update中加载插件,一切正常!

答案 1 :(得分:0)

生成文件vendor / cakephp-plugins.php时似乎出现了问题。不知何故,您自己安装的CakePHP插件不包含在此文件中。自己添加插件时,一切正常,但每次加载编辑器更新/安装时,都会重新生成此文件,因此您将丢失更改。

我可以看到插件是在vendor / composer / installed.json中加载的,但问题似乎是他们的类型是' library',它应该是cakephp-plugin。我无法弄清楚需要改变什么,所以CakePHP认为这是一个自己的插件。