Estendere IFile

Realizzare un nuovo ADAPTER


IFIle permette la realizzazione dei nuovi Adapter, o meglio classi, per la parserizzazione di file oltre a quelli già presenti. Di seguito verranno descritte le linee guida per implementare un nuovo Adapter.

Implementazione

Per poter implementare un nuovo adapter bastano tre semplici passi:

Passo 1 – Creazione file PHP:
Creare un nuovo file PHP nella cartella:
/adapter/
con il nome del file così strutturato:
Adapter_Search_Lucene_Document_<EXT>.php

Dove al valore “<EXT>” si dovrà inserire l’estensione, in MAIUSCOLO, del file che si vuole parserizzare. Ad esempio se si vuole creare un Adapter per i file RTF basterà creare un nuovo file vuoto PHP:
/adapter/ Adapter_Search_Lucene_Document_RTF.php

Passo 2 – La classe:
Dopo aver creato il file andrà inclusa la classe astratta:
/adapter/ Adapter_Search_Lucene_Document_Abstarct.php

e creata la classe con lo stesso nome del file (senza .php) che estende la classe sopradescritta.

class Adapter_Search_Lucene_Document_RTF extends Adapter_Search_Lucene_Document_Abstract { 
   public function __construct() { 
       parent::__construct(); 
   }

   public function loadParserFile() {
      // creazione del Bean $this->indexValues = new LuceneDataIndexBean(); 
      // recupero il contenuto dal file 
      $data = mioMetodoRecuperaContenutoFile(); 
      if ($data === ‘’) { 
         require_once 'Adapter_Search_Lucene_Exception.php'; 
         throw new Adapter_Search_Lucene_Exception(' Empty body '); 
      } 
      $this->indexValues->setBody($data);
      return $this->indexValues->getLuceneDocument();
   }
}


basterà implementare il metodo dell’interfaccia Adatpter_Search_Lucene_Document_Interface “loadParseFile” . Il metodo deve restituire un oggetto Zend_Search_Lucene_Document.
Va ricordato che l’oggetto Zend_Search_Lucene_Document deve ritornare un field “body” valorizzato per non mandare in eccezione il processo di indicizzazione.