我可以在带有别名的cakephp上加载插件吗?

时间:2016-01-30 21:43:06

标签: php cakephp cakephp-2.x

我们假设我在CakePHP 2.x中安装名为Debug.Log(((People)people[0]).name); 的插件。此插件位于文件夹名称为GmponosCakePlugin的插件文件夹下。

要加载插件,我需要执行以下GmponosCakePlugin

然后,如果我需要使用此插件中的Helper,我必须在AppController中使用以下语法CakePlugin::load('GmponosCakePlugin');才能加载帮助程序。

我有没有办法将此插件别名设为GmponosCakePlugin.MyHelper,因此我可以将其加载为Gmponos

1 个答案:

答案 0 :(得分:0)

如果你不能重命名该文件夹,那么答案不一定是,但由于CakePHP中没有明确的插件名称别名功能,你拥有的所有选项或多或少都是“黑客”。

一个选项是例如注册一个带有所需名称的附加假插件,以及一个指向实际插件文件夹的自定义路径,例如

CakePlugin::load('Gmponos', array (
    'path' => APP . 'Plugin' . DS . 'GmponosCakePlugin' . DS
));

这应该有效(不确定可能的副作用),但它有点难看。并且应该注意的是,在大多数情况下,这需要另外来注册正常的插件名称,就像在插件中一样,代码将引用实际的插件名称。

如果它是你自己的插件,并且它正在使用作曲家,那么通过installer-name额外选项更改安装文件夹名称应该非常简单,这是我更喜欢的解决方案。

<强> https://github.com/composer/installers#custom-install-names

您当然也必须在插件代码中更改可能的插件名称引用。