CakePHP: no se puede cargar la clase del paquete personalizado
cakephp-2.0 (2)
En primer lugar, las rutas del paquete deben estar registradas para su uso con App::uses
, y Lib/Fpdf
no lo es, por defecto solo se registran los paquetes centrales.
Puede ampliar las rutas para un paquete ya existente, en su caso sería Lib
:
App::build(array(''Lib'' => array(APP . ''Lib'' . DS . ''Fpdf'' . DS)));
Y luego use App::uses(''FpdfWrapper'', ''Lib'');
o mejor agrega un nuevo paquete:
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
Entonces puedes usar App::uses(''FpdfWrapper'', ''Lib/Fpdf'');
Y por último, pero no menos importante, el nombre de archivo debe seguir las convenciones de CakePHP como ya se mencionó en @Nunser, es decir, fdpf_wrapper.php
debe renombrarse a FdpfWrapper.php
Queremos usar la biblioteca FPDF en uno de nuestros controladores.
Creamos los siguientes archivos:
app
-Lib
--Fpdf
---files.php
---fpdf.php
---fdpf_wrapper.php <-- this is our class (FdpfWrapper) which extends the base FPDF class
Justo antes de la clase de controlador, intentamos esto:
App::uses(''FpdfWrapper'', ''Lib/Fpdf'');
Pero falla todo el tiempo. ¿Qué estamos haciendo mal?
Mi caso fue un poco diferente.
Para que App::uses(''ExampleAPI'', ''ExampleAPI'')
funcione, asegúrese de que:
-
/Lib/ExampleAPI/ExampleAPI.php
existe y es legible -
/Lib/ExampleAPI/ExampleAPI.php
contieneclass ExampleAPI{}
declaration - llama al
new ExampleAPI
en el código de referencia