Yii to framework oparty na komponentach PHP, przeznaczony do szybkiego i wydajnego tworzenia aplikacji webowych większej skali.
Instalacja frameworka jest niezwykle prosta na tle innych tego typu narzędzi. Nie musi być instalowany w katalogu dostępnym sieciowo. Ważnym elementem jest to, że Yii posiada skrypt rozruchowy.
Framework umożliwia częstsze używanie tego samego kodu przy czym znacznie przyspiesza proces tworzenia samej aplikacji. Jest to framework ogólnego zastosowania. Może być używany do tworzenia dowolnego rodzaju aplikacji.
Jest narzędziem lekkim, wyposażonym w przemyślane mechanizmy buforujące. Buforowanie w Yii obejmuje głównie konfigurowanie a także używanie komponentu cache aplikacji. Buforowanie wpływa na zwiększenie wydajności naszej aplikacji poprzez przechowywanie danych statycznych w buforze i jednoczesnym dostarczaniu ich wtedy gdy są wymagane.
Framework ten dostarcza różnych komponentów cache, między innymi są to takie komponenty jak:
- CmemCache - używa rozszerzenia memcache dla PHP
- CfileCache - używa plików do przechowywania buforowanych danych, komponent jest przydatny w szczególności do buforowania dużych porcji danych
- CdummyCache - przedstawia imitację buforowania, która w praktyce nie buforuje, celem takiego działania jest uproszczenie kodu, który sprawdzi dostępność bufora.
Yii szczególnie nadaje się do tworzenia aplikacji o zdecydowanie dużym ruchu, mogą to być przykładowo fora, portale, systemy e-commerce, systemy zarządzania treścią (CMS- ang. Content Management System) i wielu innych.
Cechą charakterystyczną i jednocześnie czymś co przewyższa inne frameworki jest na pewno jego wydajność, duży zakres funkcji oraz przejrzystość samej dokumentacji. Yii od początku został zaprojektowany do tworzenia potężnych aplikacji.
Rozszerzanie Yii jest powszednią czynnością dla programistów. Rozszerzenia odnoszą się między innymi do takich kategorii jak:
- komponent aplikacji
- kontroler - posiada domyślną akcję, stanowi instancję klasy CController lub klasy, która rozszerza Ccontroller
- widget (jest to skrypt PHP zawierający elementy interfejsu użytkownika
- helper (klasa zawierająca wyłącznie metody statyczne
- walidator (to komponent dziedziczący po klasie Cvalidator
- moduł (to samowystarczalna jednostka aplikacji.
Przykładowy kod w Yii
Yii Przykład #1
<?php
/**
* UserIdentity represents the data needed to identity a user.
* It contains the authentication method that checks if the provided
* data can identity the user.
*/
class UserIdentity extends CUserIdentity
{
/**
* Authenticates a user.
* @return boolean whether authentication succeeds.
*/
public function authenticate()
{
$user = User::model()->find('username=:name OR email=:name', array(
':name' => $this->username
));
if($user === null) {
$this->errorCode=self::ERROR_USERNAME_INVALID;
} elseif(!CPasswordHelper::verifyPassword($this->password, $user->password)) {
$this->errorCode=self::ERROR_PASSWORD_INVALID;
} else {
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}
}
?>
Yii Przykład #2
<?php
/**
* Example cache dependency used in UserController
*/
class ExampleDependency extends CCacheDependency
{
protected function generateDependentData() {
return Yii::app()->db->createCommand(
"SELECT COUNT(*) FROM users;"
)->queryScalar();
}
}
?>