Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/04/2017, 11:56
Triby2
 
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