Używanie zewnętrznych bibliotek (ang. Using 3rd-Party Libraries)

Yii jest starannie zaprojektowane, tak by można było z łatwością zintegrować z nim zewnętrzne biblioteki i wykorzystać je do dalszego rozszerzania funkcjonalności Yii. Podczas używania zewnętrznych bibliotek w projekcie, deweloperzy często spotykają się z problemami związanymi z nazywaniem klas oraz z dołączaniem plików. Ponieważ wszystkie klasy Yii są poprzedzone literą C, zachodzi mniejsze prawdopodobieństwo, że wystąpi problem z nazewnictwem klas. Aby załączyć plik Yii korzysta z SPL autoload co powoduje iż może ono dobrze współdziałać z innymi bibliotekami, jeśli używają one SPL autoload lub PHP include do dołączania plików klas.

Poniższy przykład zilustruje nam w jaki sposób możemy użyć komponentu Zend_Search_Lucene pochodzącego z frameworku Zend w aplikacji Yii.

Po pierwsze, rozpakowujemy plik z wydaniem frameworku Zend do katalogu protected/vendors, przy założeniu, że protected jest głównym folderem aplikacji. Po tej czynności sprawdź czy plik protected/vendors/Zend/Search/Lucene.php istnieje.

Po drugie, na początku klasy kontrolera wstaw następujący kod:



Powyższy kod dołączył plik klasy Lucene.php. Ponieważ używamy ścieżki relatywnej potrzebujemy zmienić ścieżkę include PHP, tak aby plik mógł zostać zlokalizowany poprawnie. Zrobiliśmy to poprzez wywołanie Yii::import przed require_once.

Gdy powyższe "ustawienia" są gotowe, możemy już użyć klasy Lucene w akcji kontrolera na przykład w następujący sposób:



Używanie zewnętrzych bibliotek z przestrzenią nazw (ang. namespace)

W celu używania biblioteki z przestrzenią nazw, która jest zgodna z PSR-0 (np. Zend Framework 2 czy też Symfony2) musisz zarejetrować jej główny alias jako alias ścieżki.

Za przykład posłuży nam Imagine. Jeżeli umieściliśmy bibliotekę Imagine w katalogu protected/vendors będziemy ją używali w następujący sposób:



W powyższym kodzie nazwa aliasu, którą zdefiniowaliśmy powinna zgadzać się z pierwszą częścią przestrzeni nazw używanej w bibliotece.

Używanie Yii w zewnętrznych systemach

Yii może być używane jako samowystarczalna biblioteka wspierająca rozwój oraz rozszerzanie istniejących zewnętrznych systemów, takich jak WordPress, Joomla, itp. W tym celu, należy dołączyć następujący kod w kodzie rozruchowym zewnętrznego systemu:



Powyższy kod jest bardzo podobny do kodu rozruchowego używanego przez typową aplikację Yii z jednym wyjątkiem: nie wywołuje on metody run() po utworzeniu instancji aplikacji.

Od teraz możemy używać większości funkcjonalności oferowanych przez Yii podczas pracy nad rozszerzaniem zewnętrznych aplikacji. Na przykład, możemy użyć Yii::app() w celu uzyskania dostępu do instancji aplikacji; możemy używać funkcjonalności związanych z bazą danych takich jak DAO czy też rekord aktywny; możemy używać modeli oraz funckjonalności sprawdzania ich poprawności; i tak dalej.

$Id: extension.integration.txt 3431 2011-11-03 00:53:44Z alexander.makarow@gmail.com $