【问题标题】:cakephp 2.3.0 failed to load vendor filescakephp 2.3.0 无法加载供应商文件
【发布时间】:2017-06-11 23:13:07
【问题描述】:

我在 cakephp 2.3.0 中加载供应商文件时遇到问题。我尝试在我的 StreamsController.php 文件中输入 App::import('Vendor', 'EncodingProfileConfig'); 正上方的 App::uses('AppController', 'Controller');。我收到错误“找不到类'EncodingProfileConfig'”。我该如何解决这个问题?我正在使用这个参考:https://book.cakephp.org/2.0/en/core-utility-libraries/app.html#loading-vendor-files

实际的类在 app/Vendor/bitcodin/lib 目录中。但是在下面的这段代码失败后,我尝试了一种更直接的方法。这也失败了。我真正想做的是在它的目录 app/Vendor/bitcodin/lib 中加载它而不将其删除。

App::build(array('Vendor' => array(APP . 'Vendor' . DS . 'bitcodin' . DS . 'lib' . DS)));
App::uses('EncodingProfileConfig', 'Vendor/bitcodin');

【问题讨论】:

  • 在引用第三方代码时,请始终在您的问题中添加对它的引用,分别嵌入一个示例,并展示您如何尝试使用它。如果人们可以看到EncodingProfileConfing.php 的内容,并且您尝试实例化该类,他们会发现您的问题不仅仅是导入文件。另外我建议你学习作曲家,并利用它。

标签: php cakephp cakephp-2.3


【解决方案1】:

使用这个

App::import('供应商', '文件名');

如果您的文件位于供应商内部的某个文件夹中,则在文件名之前指定文件夹,例如 App::import('供应商', '文件夹名/文件名'); 你的情况

App::import('Vendor', 'bitcodin/lib/filename');

【讨论】:

  • 我在哪里插入这个?在我的 StreamsController.php 中?就在类定义之前?
  • 以上控制器类定义
  • 嘿,你得到解决方案了吗
【解决方案2】:

通过在参数中指定文件位置来使用导入

App::import('Vendor', 'EncodingProfileConfig', array('file' => 'bitcodin' . DS . 'lib' . DS . 'EncodingProfileConfig.php' ));
// Add this line to import the class from the namespace
use bitcodin\EncodingProfileConfig;

在使用 EncodingProfileConfig 类之前或在文件的开头,在 App::uses('AppController', 'Controller'); 之后插入此代码

【讨论】:

  • 我把它放在App::uses('AppController', 'Controller'); 之后,但是当我尝试使用该类创建一个对象时,$Obj = new EncodingProfileConfig(); 我得到相同的错误类未找到错误。
  • 您是否使用了正确的文件名?我只是假设这是EncodingProfileConfig.php 区分大小写
  • 我更新了答案,我刚刚添加了命名空间导入。
  • 没错,这是一个命名空间问题。我也发现了。非常感谢!!我投了这个作为答案。
猜你喜欢
  • 2015-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 1970-01-01
  • 2015-07-27
相关资源
最近更新 更多