Konwencje

Yii przedkłada konwencje nad konfiguracją. Stosując się do konwencji można stworzyć wyszukaną aplikację w Yii bez potrzeby pisania i zarządzania skomplikowaną konfiguracją. Oczywiście, Yii wciąż można dostosowywać prawie w każdym aspekcie za pomocą konfiguracji, jeśli występuje taka potrzeba.

Poniżej opiszemy konwencje, które zalecamy używać podczas programowania w Yii. Dla wygody zakładamy, że WebRoot jest katalogiem, w którym zainstalowane są aplikacje Yii.

Adresy URL

Domyślnie Yii rozpoznaje adresy URL w następującym formacie:

http://hostname/index.php?r=IdKontrolera/IdAkcji

Zmienna GET r prezentuje trasę która może zostać rozkodowana przez Yii na nazwę kontrolera i akcji. Jeśli IdAkcji jest pominięte kontroler weźmie akcję domyślną (zdefiniowaną poprzez CController::defaultAction); a jeśli IdKontrolera zostanie również pominięte (lub zmienna r nie będzie występować) aplikacja użyje domyślnego kontrolera (zdefiniowanego poprzez CWebApplication::defaultController).

Przy pomocy CUrlManager, możliwym jest utworzenie oraz rozpoznawanie bardziej przyjaznych SEO adresów URL, takich jak http://hostname/IdKontrolera/IdAkcji.html. Funkcjonalność ta jest szczegółowo opisana w Zarządzaniu adresami URL.

Kod

Yii zaleca nazywać zmienne, funkcje oraz typy klas stosując notację wielbłądzią, w której to pierwsza litera każdego słowa jest wielka a słowa połączone są bez spacji. Nazwy zmiennych oraz funkcji powinny mieć pierwsze słowo zawsze pisane małą literą, w celu odróżnienia ich od nazw klas (np. $basePath, runController(), LinkPager). Dla zmiennych prywatnych klasy zaleca się poprzedzić ich nazwy znakiem podkreślenia (np. $_actionList).

Ponieważ przestrzenie nazw nie są wspierane dla wersji PHP niższych niż 5.3.0 zaleca się, aby klasy były nazywane w sposób unikalny, w celu uniknięcia konfliktu nazw z zewnętrznymi klasami. Z tego powodu, wszystkie klasy frameworku poprzedzone są literą "C".

Specjalna zasada dotyczy kontrolerów, do których nazw musi zostać dodane słowo Controller. ID kontrolera jest wtedy definiowane jako nazwa klasy rozpoczynająca się małą literą bez słowa Controller. Na przykład, klasa PageController będzie posiadała ID page. Reguła ta powoduje, że aplikacja jest bezpieczniejsza. Przyczynia się to również do tego, że adresy URL związane z kontrolerami są trochę bardziej czytelne (np. /index.php?r=page/index zamiast /index.php?r=PageController/index).

Konfiguracja

Konfiguracja składa się z tablicy par klucz-wartość. Każdy klucz reprezentuje nazwę właściwości obiektu konfigurowanego a każda wartość jest odpowiadającą jej wartością inicjalną własności. Na przykład, array('name'=>'Moja aplikacja', 'basePath'=>'./protected') inicjalizuje właściwości name oraz basePath odpowiadającymi im wartościom z tablicy.

Każda właściwość obiektu umożliwiająca zapis do niej może zostać skonfigurowana. Jeśli nie zostanie to zrobione, właściwość przyjmie wartość domyślną. Podczas konfigurowania właściwości, opłaca się przeczytać odpowiadającą jej dokumentację, tak aby nadać jej poprawną wartość początkową.

Plik

Konwencje nazywania oraz używania plików zależą od ich typów.

Pliki klas powinny zostać nazwane tak jak klasy, które zawierają. Na przykład, klasa CController znajduje się w pliku CController.php. Klasa publiczna, to taka klasa, która może zostać użyta w innych klasach. Każdy plik klasy powinien zawierać co najmniej jedną klasę publiczną. Klasy prywatne (klasy, które są używane tylko przez jedną klasę publiczną) mogą się znajdować w tym samym pliku, gdzie znajduje się klasa w której jest używana.

Klasy widoków, powinny być nazywane tak samo jak widoki. Na przykład, widok index znajduje się w pliku index.php. Plik widoku jest skryptem PHP, który posiada kod PHP oraz HTML, w celach prezentacyjnych.

Pliki konfiguracyjne można nazwać arbitralnie. Plik konfiguracji jest skryptem PHP, którego jedynym celem jest zwrócić tablicę asocjacyjną reprezentującą konfigurację.

Katalogi

Yii zakłada, że istnieje pewien zestaw katalogów używanych do różnych celów. Każdy z nich może zostać zmieniony, jeśli występuje taka potrzeba:

Baza danych

Większość aplikacji internetowych posiłkuje się bazami danych. Jako najlepszą praktykę, proponujemy następującą konwencję nazewnictwa dla baz danych oraz kolumn. Zauważ, iż nie są one wymagane przez Yii:

$Id: basics.convention.txt 3225 2011-05-17 23:23:05Z alexander.makarow $