estoy intentando ejecutar el contructor de la clase padre dentro del constructor de la clase hija. Porque defini (aparte de las propiedas de la clase) un codigo para q me asigne las propiedades en la clase padre pero al parecer no lo esta haciendo.
Pero el detalle esta en que al momento de realizar el parent::__construct, este al parecer nose ejecuta, solo me realiza la asignacion de propiedades pero no me crea el array.
Clase Padre
Código PHP:
class ArchivoExcel extends PHPExcel {
public $_nombreArchivo;
public $_version;
protected $_objWorksheet; /* Hoja de Calculo */
protected $_highestRow; /* posicion de la ultima fila - ejm. 10 */
protected $_highestColumn; /* posicion de la ultima columna - ejm. 'F' */
protected $_highestColumnIndex; /* Index de ultima columna - ejm. 5 */
function __construct($nombreArchivo,$versionExcel='Excel5') {
$this->_nombreArchivo = $nombreArchivo;
$this->_version = $versionExcel;
try{
$objReader = PHPExcel_IOFactory::createReader($versionExcel);
$objReader->setReadDataOnly(true);
if(!$objReader->canRead($nombreArchivo)){ throw new ExcelException('El archivo no es compatible.'); };
$objPHPExcel = $objReader->load($nombreArchivo);
$this->_objWorksheet = $objPHPExcel->getActiveSheet();
$this->_highestRow = $this->_objWorksheet->getHighestRow(); // e.g. 10
$this->_highestColumn = $this->_objWorksheet->getHighestColumn(); // e.g 'F'
$this->_highestColumnIndex = PHPExcel_Cell::columnIndexFromString($this->_highestColumn); // e.g. 5
} catch(ExcelException $excepcion) {
echo 'Mensaje: '.$excepcion->getMessage().'<br />';
}
}
}
Código PHP:
class ExcelColumna extends ArchivoExcel {
private $_arrayAsociativoColumna;
private $_arrayAsociativoFila;
function __construct($nombreArchivo,$versionExcel='Excel5') {
$ArchivoExcel = new ArchivoExcel($nombreArchivo,$versionExcel);
}
public function generaArrayAsociativoColumna() {
$idxcol = 1;
$arrayExcelCol = array();
for ($col = 0; $col < parent::_highestColumnIndex; ++$col) {
$nombreColumna = $this->_objWorksheet->getCellByColumnAndRow($col, 1)->getValue();
$i = 1;
/* Index ej. "001-NOMBRECAMPO" */
$idxcolformat = str_pad($idxcol, 3, '0', STR_PAD_LEFT);
for ($row = 2;$row <= $this->_highestRow; ++$row) {
$arrayExcelCol[$idxcolformat.'-'.$nombreColumna][$i] = $this->_objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
++$i;
}
++$idxcol;
}
$this->setArrayAsociativoColumna($arrayExcelCol);
//return $arrayExcelCol;
}
}
Fatal error: Undefined class constant '_highestColumnIndex' in /usr/local/apache2/htdocs/procesos/clases/ExcelColumna.class.php on line 44.
Estoy saltandome alguna regla de POO ??