Foros del Web » Programando para Internet » PHP »

FPDF extender varios scripts

Estas en el tema de FPDF extender varios scripts en el foro de PHP en Foros del Web. Hola, tengo un problema al cual no logro darle solución. Utilizo la clase FPDF y hasta ahora para cada caso en donde lo necesito vengo ...
  #1 (permalink)  
Antiguo 20/04/2017, 19:56
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años, 7 meses
Puntos: 1
FPDF extender varios scripts

Hola, tengo un problema al cual no logro darle solución. Utilizo la clase FPDF y hasta ahora para cada caso en donde lo necesito vengo añadiendole 3 extensiones: cellfit.php, htmlTables.php y autoprint.php. Como verán cada uno esta en un archivo separado, pero me gustaria tener solo archivo "fpdf_includes.php" en donde pueda extender todos los scritps que necesite para luego solamente hacer uso de la clase FPDF_includes cuando necesite generar un pdf.

Imagino que deber ser algo que se podrá hacer, pero no encontré la forma y los tiempos apremian...

Desde ya muchas gracias por su ayuda!
  #2 (permalink)  
Antiguo 20/04/2017, 23:30
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 10 años, 4 meses
Puntos: 30
Respuesta: FPDF extender varios scripts

La verdad no es una buena practica pq corres el riesgo de que haya alguna funcion con el mismo nombre en difrentes clases o cosas por el estilo.

Si estas seguro que ese no va a ser tu caso, puedes hacer que cellfit extienda de htmlTables o viceversa y despues instanciar esa clase dentro del constructor de fpdf, asi resolverias tu problema.
  #3 (permalink)  
Antiguo 21/04/2017, 06:33
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: FPDF extender varios scripts

Gracias Triby2 por el consejo. Revisando me doy cuenta de que htmlTables no la estoy usando, habré resuelto el problema de otra forma en su debido momento, asi que necesitaria hacer algo como esto:
Código PHP:
Ver original
  1. require('fpdf.php');
  2. require('autoprint.php');// aquie esta definida la clase PDF_Javascript
  3. require('cellfit.php');
  4.  
  5. class PDF_Javascript extends PDF_CellFit{
  6. }
  7.  
  8. class PDF extends PDF_Javascript{
  9. ...
  10. }
  11.  
  12. $pdf = new PDF();

en este caso el error me da por redefinir la clase PDF_Javascript, pero no se como hacer uso de ambas clases en 1 archivo...
  #4 (permalink)  
Antiguo 21/04/2017, 11:56
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 10 años, 4 meses
Puntos: 30
Respuesta: FPDF extender varios scripts

Cita:
Iniciado por axelb Ver Mensaje
Gracias Triby2 por el consejo. Revisando me doy cuenta de que htmlTables no la estoy usando, habré resuelto el problema de otra forma en su debido momento, asi que necesitaria hacer algo como esto:
Código PHP:
Ver original
  1. require('fpdf.php');
  2. require('autoprint.php');// aquie esta definida la clase PDF_Javascript
  3. require('cellfit.php');
  4.  
  5. class PDF_Javascript extends PDF_CellFit{
  6. }
  7.  
  8. class PDF extends PDF_Javascript{
  9. ...
  10. }
  11.  
  12. $pdf = new PDF();

en este caso el error me da por redefinir la clase PDF_Javascript, pero no se como hacer uso de ambas clases en 1 archivo...
Cuando extiendes una clase no es necesario hacerle un require pq ya la estas usando al extender la clase PDF, por eso da el problema de redefinir la clase.

Quita estas linea
Código PHP:
Ver original
  1. require('autoprint.php');// aquie esta definida la clase PDF_Javascript
  2. require('cellfit.php');
y resolverás ese problemilla.

Si por la Ley de Murphy te diese problemas, te paso un hint de como puedes usar una clase dentro de otra (instanciar):


Código PHP:
Ver original
  1. #Clase PDF
  2. <?php
  3. # Añadie el require de la clase que deseas instanciar antes de declarar la clase PDF
  4. require('autoprint.php');  // aquie esta definida la clase PDF_Javascript
  5.  
  6. class PDF {
  7.  
  8.      proteced $pdfJS;
  9.  
  10.      function __construct() {
  11.           $this->pdfJS = new PDF_Javascript();
  12.      }
  13. }
  14.  
  15. #Clase PDF_Javascript
  16. class PDF_Javascript {
  17.  
  18.      public function funcionEjemplo() {
  19.          return true;
  20.      }
  21. }

De esta manera, dentro de la clase PDF podrías hacer uso PDF_Javascript con "$this->pdfJS" y fuera de la clase pdf, es decir, en cualquier archivo que instancies la clase PDF, podrías usar la clase instanciada de esta manera.

Código PHP:
Ver original
  1. $pdf = new PDF();
  2.  
  3. $pdf->pdfJS->funcionEjemplo();   # Esto te devolvería "true"

Última edición por Triby2; 21/04/2017 a las 12:09
  #5 (permalink)  
Antiguo 21/04/2017, 20:26
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: FPDF extender varios scripts

La verdad es que no lo logro y veré la forma de arreglármelas de otro modo. Muchas gracias por tu tiempo! Saludos
  #6 (permalink)  
Antiguo 22/04/2017, 02:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: FPDF extender varios scripts

La clase PDF_Javascript es una extensión de fpdf, por eso te da el error al definirla nuevamente.

Si no quieres usar la que ya existe, entonces cambia de nombre a la clase que estás creando.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 24/04/2017, 11:57
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: FPDF extender varios scripts

Hola Triby, en realidad si queria usar la que ya estaba definida en otro archivo, el problema era cuando ademas de esa clase, queria utilizar otra mas, que estaba definida en su propio archivo...
  #8 (permalink)  
Antiguo 24/04/2017, 17:24
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: FPDF extender varios scripts

Puedes publicar el error de forma textual y mostrar como estas extendiendo en cada archivo
y lo mas importante puedes explicar exactamente que es lo que quieres hacer ? hablas de usar las otras clases pero de que forma pretendes hacerlo ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #9 (permalink)  
Antiguo 09/05/2017, 13:41
 
Fecha de Ingreso: abril-2011
Mensajes: 171
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: FPDF extender varios scripts

Hola hhs, soy de esas personas al que no les gusta quedarse con la duda, pero lamentablemente en este caso tendré que hacerlo. Como comenté mas arriba que haría, logré mi cometido de otra forma, no la que me hubiese gustado pero funcionó al fin y al cabo. Podría volver a revisar esos archivos, pero estoy desde hace un tiempo largo con el agua al cuello, y permaneceré asi por un buen tiempo todavía, aunque seguramente esta duda volverá a surgirme en otro momento. Muchas gracias a todos por su interes. No cambio este foro por nada en el mundo! Saludos a tod@s

Etiquetas: extender, fpdf, html, scripts
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:06.