Rozszerzanie Yii
================

Rozszerzanie Yii jest powszednią czynnością podczas dewelopmentu. Na przykład, gdy
piszesz nowy kontroler, rozszerzasz Yii poprzez dziedziczenie po klasie jego 
[CController]; gdy piszesz nowy widżet, dziedziczysz po [CWidget] lub istniejącej
klasie widżetu. Jeśli rozszerzony kod jest przeznaczony do ponownego użycia przez
innych deweloperów, nazywamy go *rozszerzeniem* (ang. extension).

Rozszerzenie zazwyczaj służy jednemu celu. W nazewnictwie Yii, można to sklasyfikować
następująco:

 * [komponent aplikacji](/doc/guide/basics.application#application-component)
 * [zachowanie](/doc/guide/basics.component#component-behavior) 
 * [widżet](/doc/guide/basics.view#widget)
 * [kontroler](/doc/guide/basics.controller)
 * [akcja](/doc/guide/basics.controller#action)
 * [filtr](/doc/guide/basics.controller#filter)
 * [komenda konsoli](/doc/guide/topics.console)
 * walidator: jest komponentem dziedziczącym po klasie [CValidator].
 * helper: jest klasą zwierającą wyłącznie metody statyczne. Wygląda on jakby 
 globalne funkcje, używały klasy jako swojej przestrzeni nazw.
 * [moduł](/doc/guide/basics.module): jest samowystarczającą jednostką aplikacji,
 która składa się z [modeli](/doc/guide/basics.model), [widoków](/doc/guide/basics.view), 
 [kontrolerów](/doc/guide/basics.controller) oraz innych komponentów wspierających. 
 W wielu aspektach, moduł jest podobny do [aplikacji](/doc/guide/basics.application). 
 Główną różnicą jest to, że moduł znajduje się wewnątrz aplikacji. Na przykład, 
 możemy mieć moduł, który dostarcza funkcjonalności zarządzania użytkownikami.

Rozszerzenie może być również komponentem, który nie należy do żadnej z wyżej 
wymienionych kategorii. W rzeczy samej, framework Yii jest starannie zaprojektowany, tak że
niemal każda jego część kodu może być rozszerzona oraz dostosowana do indywidualnych potrzeb.

<div class="revision">$Id: extension.overview.txt 2739 2010-12-14 01:50:04Z weizhuo $</div>