3

我们想在我们的一个控制器中使用 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');

但是每次都失败。我们做错了什么?

4

2 回答 2

4

首先,必须注册包路径才能与 一起使用App::uses,并且Lib/Fpdf没有这样的路径,默认情况下只注册核心包。

您可以扩展已经存在的包的路径,在您的情况下是Lib

App::build(array('Lib' => array(APP . 'Lib' . DS . 'Fpdf' . DS)));

然后使用App::uses('FpdfWrapper', 'Lib');

http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#adding-paths-for-app-to-find-packages-in

或者更好地添加一个新包:

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

于 2013-10-01T17:30:38.417 回答
1

我的情况有点不同。

为了使App::uses('ExampleAPI', 'ExampleAPI')工作确保:

  • /Lib/ExampleAPI/ExampleAPI.php存在并且可读
  • /Lib/ExampleAPI/ExampleAPI.php包含class ExampleAPI{}声明
  • 你调用new ExampleAPI引用代码
于 2016-05-14T21:07:01.640 回答