Sto creando una classe zip personalizzata, che prende come base la classe nativa ZipArchive() di php.
Visti i limiti di scope del php, ho aggirato il problema di importazione dell'oggetto, in questo modo:
Codice PHP:
//messa all'esterno della classe
$zip = new ZipArchive();
class zip_functions{
protected function _zip(){
global $zip;
return $zip;
}
[...]
}
Fin qui tutto bene, tramite il metodo _zip() posso recuperare l'oggetto perché la classe zip_functions me lo vede correttamente.
Il problema nasce quando uso i metodi di ZipArchive. Per esempio, ho creato un semplice metodo per aprire un file archivio:
Codice PHP:
public function open( $filename = null ){
if( $filename === null ){
return false;
}
if( $this->_zip()->open($filename) === true ){
return true;
}
return false;
}
Quando lo eseguo il php mi dice che non ha memoria sufficiente e butta fuori l'errore:
codice:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 65488 bytes)
Non capisco perché occupi tutta questa memoria. Avete qualche idea su come risolvere?