我们希望在我们的一个控制器中使用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');
但每次都失败了。我们做错了什么?
答案 0 :(得分:4)
首先,必须注册包路径才能与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
答案 1 :(得分:1)
我的情况有点不同。
要使App::uses('ExampleAPI', 'ExampleAPI')
工作,请确保:
/Lib/ExampleAPI/ExampleAPI.php
存在且可读/Lib/ExampleAPI/ExampleAPI.php
包含class ExampleAPI{}
声明new ExampleAPI