0

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

难道我做错了什么?我签vendor/composer/autoload_psr4.php入了我的插件文件夹,我的课程在那个文件中。我也在composer dump-autoload应用程序目录和插件目录中运行,但它没有帮助。

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

4

2 回答 2

0

我将我的烘焙插件移动到它自己的 git 存储库中,然后将该存储库添加到我的应用程序的 composer.json 文件中,并将我的插件添加为要求。然后我composer update在我的应用程序目录中运行,并且我的插件安装了它的依赖项到供应商目录中。然后我只需要加载插件就可以了config/bootstrap.php

于 2015-06-28T22:41:50.913 回答
0

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

我可以看到插件加载在 vendor/composer/installed.json 中,但问题似乎是它们的类型是“库”,它应该是 cakephp-plugin。我不知道需要更改什么,因此 CakePHP 将其视为自己的插件。

于 2016-09-19T06:23:44.607 回答