2012-10-16 12 views
9

Grałem z samouczka zf2 z powodzeniem, ale byłem całkowicie zdezorientowany, próbując zintegrować bibliotekę zewnętrzną, taką jak "jpgraph". Wiem, że muszę to zrobić za pomocą autoload lub servicemanager, ale to nie zadziała. Pliki php w jpgraph znajdują się w katalogu vendor/graph. Używam moduł o nazwie Jpgraph w indexAction kontrolera I try:Jak dołączyć bibliotekę zewnętrzną do Zend Framework 2?

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

to wyskakuje mi błąd:

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

biblioteka jpgraph nie używać nazw.

i also tried this way without success

co jest najlepszym sposobem, aby zintegrować takie rzeczy?

Byłbym rad dla każdego wierzchołka lub pomóc

+0

Nie masz szczęścia: JPGraph nie działa zgodnie ze strukturą PSR-0, więc prosty autoloader nie będzie w stanie wykonać tej pracy ... –

+0

@Matteo nie jest w 100% prawdziwe. Podczas gdy JPGraph nie działa zgodnie ze strukturą PSR-0, wciąż istnieje opcja użycia ClassMapAutoloader, więc nie ma szczęścia. –

+0

@LukeMills Nie myślałem o tym! Masz całkowitą rację, dziękuję za poprawkę. –

Odpowiedz

0

One opcja, jak wskazał Maks3w, to użycie Composer. Jeśli nigdy nie słyszałeś o kompozytorze lub go używałeś, zdecydowanie warto go obejrzeć. Byłem zaskoczony, jak łatwo było skonfigurować i używać bibliotek zewnętrznych. Bardzo łatwo jest też skonfigurować własną bibliotekę do pracy z kompozytorem i użyć dowolnej własnej biblioteki źródłowej (git lub svn) - działa dobrze z replikami GitHub - wystarczy dodać plik composer.json.

Z drugiej strony, nie musisz używać kompozytora do robienia tego, co chcesz, byłoby to bardzo łatwe, ale może to być przesada. Zend Framework 2 ma bardzo elastyczny system autoloadera i chociaż dobrze współpracuje z PSR-0, możesz mieć dowolną klasę autoloadingu, którą lubisz. Spójrz na różne komponenty Zend\Loader, w szczególności myślę, że ClassMapAutoloader będzie pasował do twoich potrzeb.