php cakephp cakephp-2.0

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'');

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

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 contiene class ExampleAPI{} declaration
  • llama al new ExampleAPI en el código de referencia