我们想在我们的一个控制器中使用 FPDF 库。
我们创建了以下文件:
app
-Lib
--Fpdf
---files.php
---fpdf.php
---fdpf_wrapper.php <-- this is our class (FdpfWrapper) which extends the base FPDF class
在控制器类之前,我们试试这个:
App::uses('FpdfWrapper', 'Lib/Fpdf');
但是每次都失败。我们做错了什么?
我们想在我们的一个控制器中使用 FPDF 库。
我们创建了以下文件:
app
-Lib
--Fpdf
---files.php
---fpdf.php
---fdpf_wrapper.php <-- this is our class (FdpfWrapper) which extends the base FPDF class
在控制器类之前,我们试试这个:
App::uses('FpdfWrapper', 'Lib/Fpdf');
但是每次都失败。我们做错了什么?
首先,必须注册包路径才能与 一起使用App::uses
,并且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);
http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#add-new-packages-to-an-application
然后你可以使用App::uses('FpdfWrapper', 'Lib/Fpdf');
最后但同样重要的是,文件名当然必须遵循 @Nunser 已经提到的 CakePHP 约定,即fdpf_wrapper.php
必须重命名为FdpfWrapper.php
我的情况有点不同。
为了使App::uses('ExampleAPI', 'ExampleAPI')
工作确保:
/Lib/ExampleAPI/ExampleAPI.php
存在并且可读/Lib/ExampleAPI/ExampleAPI.php
包含class ExampleAPI{}
声明new ExampleAPI
引用代码