【问题标题】:Can't import Vendor class into Component in CakePHP 2.5.1无法将供应商类导入 CakePHP 2.5.1 中的组件
【发布时间】:2015-07-27 19:25:13
【问题描述】:

我一直在查看该主题的所有相关问题,但所提供的解决方案(通常是 App::import() )都没有为我工作,可能是因为我有不同的配置, 如下:

我有一个常规的蛋糕安装,它从 外部文件夹 加载组件(所以在这个安装之外)。即使对于我现在尝试使用的组件,它也很有效(在我尝试加载 Vendor 类之前它工作正常)。这个 Vendor 类我也想把它放在 Cake 安装之外(与组件相同)。这是这个安装的样子:

[]
.......[shared_resources]
.............................[CakePHP]
..................................................... ......[组件]
..................................................... .............................MyCustomComponent.php
..................................................... ......[供应商]
..................................................... .....[我的供应商]
..................................................... .....................MyVendor.php
......[我的网站]
................... [cakephp 典型文件夹结构]

在我网站的 bootstrap.php 文件中,我有 App::build(array('Controller/Component' => array(dirname(ROOT) . '/shared_resources/CakePHP/Component/'))); 为了能够在任何控制器中加载该组件,它工作正常,我放在该文件夹中的任何组件都可以加载并正常工作。

现在,我正在尝试在 MyCustom 组件中加载 MyVendor 类,但无论我如何尝试我都无法让它工作尝试实例化时出现class not found错误。

我尝试过使用 php 和 Cake 的 require()import()App::import() App::uses() 与所有可能的路径组合(绝对和相对)没有任何成功,将它们放在组件类的声明之前和实际使用供应商类的方法中。例如,我尝试的最后一个是App::import('Vendor', '/absolute/path/to/shared_resources/Vendor/MyVendor/MyVendor.php');

我也尝试过在引导文件,就像组件一样。

我不知道还能尝试什么,任何帮助将不胜感激!!!

哦,我已经用 PHP 检查了文件 Vendor 类文件也存在于该路径中。

【问题讨论】:

    标签: php cakephp cakephp-2.0


    【解决方案1】:

    根据您的文件夹结构,

    要访问你的 MyVendor.php,你应该这样写

    App::import('Vendor', 'MyVendor', array('file' => 'MyVendor/MyVendor.php'));
    

    欲了解更多信息,请阅读http://book.cakephp.org/2.0/en/core-utility-libraries/app.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 2017-06-11
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      相关资源
      最近更新 更多