2012-10-16 18 views
9

Ho giocato con successo con il tutorial zf2, ma ero totalmente confuso quando provavo ad integrare una libreria esterna come "jpgraph". So che devo farlo con autoload o servicemanager ma non funzionerà. I file php di jpgraph si trovano nella directory del venditore/grafico. Io uso un modulo chiamato JPGraph, nel indexAction regolatore provo:Come includere la libreria esterna in Zend Framework 2?

$graph = new Graph($width,$height); 

questo mi dà un errore:

Fatal error: Class 'Jpgraph\Controller\Graph' not found in ... 

biblioteca JPGraph non utilizzare gli spazi dei nomi.

i also tried this way without success

qual è il modo migliore per integrare queste cose?

Sarei felice per ogni suggerimento o aiuto

+0

Sei fuori di fortuna: JPGraph non segue una struttura PSR-0, quindi il semplice caricatore automatico non sarà in grado di fare il lavoro per voi ... –

+0

@Matteo non al 100% vero. Mentre JPGraph non segue una struttura PSR-0, c'è ancora la possibilità di usare ClassMapAutoloader, quindi non è sfortunato. –

+0

@LukeMills Non ci ho pensato! Hai perfettamente ragione, grazie per la correzione. –

risposta

0

One l'opzione, come sottolineato da Maks3w, è l'uso di Composer. Se non hai mai sentito parlare o hai usato il compositore prima che valga la pena dare un'occhiata. Sono rimasto sorpreso di quanto fosse facile impostare e utilizzare librerie di terze parti. È anche molto facile impostare la propria libreria per lavorare con il compositore e utilizzare qualsiasi libreria controllata da sorgenti (git o svn) - funziona bene con repository GitHub - basta aggiungere un file composer.json.

D'altra parte, non è necessario utilizzare il compositore per fare ciò che si desidera, ma sarebbe molto semplice, ma potrebbe essere eccessivo. Zend Framework 2 ha un sistema di caricamento automatico molto flessibile e sebbene funzioni bene con PSR-0, puoi avere qualsiasi sistema di autoloading di classe che ti piace. Dai un'occhiata ai diversi componenti di Zend\Loader, in particolare penso che il ClassMapAutoloader sarà quello che si adatta alle tue esigenze.