CakePHP: Unable to load class from custom package(CakePHP:无法从自定义包加载类)
问题描述
我们想在我们的一个控制器中使用 FPDF 库.
We want to use the FPDF library in one of our controllers.
我们创建了以下文件:
app
-Lib
--Fpdf
---files.php
---fpdf.php
---fdpf_wrapper.php <-- this is our class (FdpfWrapper) which extends the base FPDF class
就在控制器类之前,我们试试这个:
Right before the controller class, we try this:
App::uses('FpdfWrapper', 'Lib/Fpdf');
但每次都失败.我们做错了什么?
But it fails every time. What are we doing wrong?
推荐答案
首先,必须注册包路径才能与 App::uses
和 Lib/Fpdf
没有这样的,默认只注册核心包.
First of all, package paths must be registered in order to be used with App::uses
, and Lib/Fpdf
is no such one, by default only the core packages are registered.
您可以扩展现有包的路径,在您的情况下为 Lib
:
You could either extend the paths for an already existing package, in your case that would be 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
或者更好地添加一个新包:
or better add a new package:
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
And last but not least, of course the filename must follow the CakePHP conventions as already mentioned by @Nunser, ie fdpf_wrapper.php
must be renamed to FdpfWrapper.php
这篇关于CakePHP:无法从自定义包加载类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:CakePHP:无法从自定义包加载类
基础教程推荐
- 超薄框架REST服务两次获得输出 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01