【问题标题】:Can I load a Plugin at cakephp with an alias?我可以在 cakephp 上使用别名加载插件吗?
【发布时间】:2016-01-30 21:43:05
【问题描述】:

假设我在 CakePHP 2.x 中安装了一个名为 GmponosCakePlugin 的插件。此插件将位于 Plugins 文件夹下,文件夹名称为 GmponosCakePlugin

要加载插件,我需要执行以下操作CakePlugin::load('GmponosCakePlugin');

然后,如果我需要使用此插件中的 Helper,我将不得不在我的 AppController 中使用以下语法 GmponosCakePlugin.MyHelper 才能加载 helper。

有什么办法可以让这个插件别名为Gmponos,这样我就可以将它加载为Gmponos.MyHelper

【问题讨论】:

  • 重命名文件夹/插件?
  • 1.该插件是通过composer加载的。 2. 我可以使用 composer-installer 并为插件文件夹设置一个不同的名称,但这是一个更复杂的场景,很难解释,所以我想我可能会问是否可以这样做。

标签: php cakephp cakephp-2.x


【解决方案1】:

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

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

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

这应该可行(虽然不确定可能的副作用),但它有点难看。需要注意的是,在大多数情况下,另外需要注册正常的插件名称,因为在插件中,代码将引用实际的插件名称。

如果它是您自己的插件,并且正在使用 composer,那么通过 installer-name 额外选项更改安装文件夹名称应该很容易,这是我更喜欢的解决方案。

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

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

【讨论】:

  • 我会保留there is no explicit plugin name aliasing functionality in CakePHP 并接受答案。我也想过我自己的一些技巧......谢谢。
猜你喜欢
  • 1970-01-01
  • 2020-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
相关资源
最近更新 更多