CakePHP:无法从自定义包加载类
我们想在一个控制器中使用FPDF库 我们创建了以下文件:CakePHP:无法从自定义包加载类,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,我们想在一个控制器中使用FPDF库 我们创建了以下文件: app -Lib --Fpdf ---files.php ---fpdf.php ---fdpf_wrapper.php <-- this is our class (FdpfWrapper) which extends the base FPDF class 但每次都失败了。我们做错了什么?首先,必须注册包路径才能与一起使用,Lib/Fpdf不是这样的路径,默认情况下只注册核心包 您可以扩展已经存在的包的路径,在您的情况下是Li
app
-Lib
--Fpdf
---files.php
---fpdf.php
---fdpf_wrapper.php <-- this is our class (FdpfWrapper) which extends the base FPDF class
但每次都失败了。我们做错了什么?首先,必须注册包路径才能与一起使用,
Lib/Fpdf
不是这样的路径,默认情况下只注册核心包
您可以扩展已经存在的包的路径,在您的情况下是Lib
:
App::build(array('Lib' => array(APP . 'Lib' . DS . 'Fpdf' . DS)));
然后使用App::uses('FpdfWrapper','Lib')代码>
或者最好添加一个新包:
App::build(array('Lib/Fpdf' => array(APP . 'Lib' . DS . 'Fpdf' . DS)), App::REGISTER);
然后您可以使用App::uses('FpdfWrapper','Lib/Fpdf')代码>
最后但并非最不重要的是,当然文件名必须遵循@Nunser已经提到的CakePHP约定,即
fdpf_wrapper.php
必须重命名为FdpfWrapper.php
我的情况有点不同
要使App::uses('ExampleAPI','ExampleAPI')
正常工作,请确保:
存在且可读/Lib/ExampleAPI/ExampleAPI.php
包含/Lib/ExampleAPI/ExampleAPI.php
声明类ExampleAPI{}
- 在引用代码中调用
newexampleApi
fdpf_wrapper.php
更改为FpdfWrapper.php
并尝试使用App::uses('FpdfWrapper','Lib')代码>?另外,我相信您已经读过了,但是这不是cakephp找不到类的错误,而是文件(语法、逻辑等)的错误吗?如果这不起作用,你能更具体地告诉我每次失败的原因和方式吗<代码>找不到类错误或其他错误?@Nunser这是一个找不到类的错误。我们目前正在让它与App::import('Vendor',bla-bla)一起使用代码>。不确定供应商或库是否是最合适的位置。这取决于它是否是第三方库()。它是?把文件名改成我所指出的名字是行不通的?
App::build(array('Lib/Fpdf' => array(APP . 'Lib' . DS . 'Fpdf' . DS)), App::REGISTER);