Yii föredrar konventioner före konfigurationer. Genom att följa konventioner kan man med Yii skapa sofistikerade applikationer utan att skriva och administrera komplicerade konfigurationer. SjÀlvklart kan Yii vid behov, med hjÀlp av konfigurationer, fortfarande anpassas pÄ nÀstan varje tÀnkbart sÀtt.
Nedan beskrivs de konventioner som rekommenderas för programmering med Yii. För
enkelhets skull antar vi att WebRoot Àr den katalog i vilken Yii-applikationen
Ă€r installerad.
Som standard, kÀnner Yii igen URL:er pÄ följande format:
http://hostname/index.php?r=ControllerID/ActionID
GET-variabeln r refererar till route som
kan fördelas av Yii till controller och action. Om ActionID utelÀmnas kommer
kontrollern utföra sin standard-action (definierad via
CController::defaultAction); om Àven ControllerID utelÀmnas (eller r-
variabeln saknas), kommer applikationen att anvÀnda standardkontrollern
(definierad via CWebApplication::defaultController).
Med hjÀlp av CUrlManager gÄr det att skapa och kÀnna igen mer SEO-vÀnliga
URL:er, som t ex http://hostname/ControllerID/ActionID.html. Denna finess
beskrivs detaljerat i URL-hantering.
Yii rekommenderar att namn pÄ variabler, funktioner och klasstyper ges i
kamelnotation dvs varje ord i namnet har inledande versal och orden skrivs ihop
utan blanksteg. Variabel- och funktionsnamn skall ha sitt första ord helt i
gemener för att skilja dem frÄn klassnamn (t.ex. $basePath, runController(),
LinkPager). För privata medlemsvariabler i klasser rekommenderas ett inledande
understreck i namnet (t.ex. $_actionList).
Eftersom namespace inte stöds i PHP före version 5.3.0 rekommenderas att klasser namnges pÄ nÄgot unikt sÀtt för att undvika namnkonflikt med tredjepartsklasser Av denna anledning namnges alla Yii-klasser med ett inledande "C"-tecken.
En speciell regel för namn pÄ kontrollerklasser Àr att de mÄste ges suffixet
Controller. En kontrollers ID definieras sedan som klassnamnet med första
bokstaven gemen (lower case) och ordet Controller bortklippt. Till exempel,
klassen PageController fÄr ID:t page. Den hÀr regeln gör applikationen
sÀkrare. Den gör ocksÄ att URL:er relaterade till kontroller fÄr ett renare
format (t.ex. /index.php?r=page/index i stÀllet för
/index.php?r=PageController/index).
En konfiguration Àr en array bestÄende av nyckel-vÀrdepar. Varje nyckel
representerar namnet pÄ en egenskap (property) hos objektet som skall
konfigureras och varje vÀrde motsvarar egenskapens initialvÀrde. Till exempel
array('name'=>'My application', 'basePath'=>'./protected') initialiserar
egenskaperna name och basePath med deras respektive vÀrden av arraytyp.
Varje skrivbar egenskap hos ett objekt kan konfigureras. Utan konfiguration antar egenskaperna sina standardvÀrden. Vid konfigurering av en egenskap Àr det vÀrt att lÀsa motsvarande dokumentation sÄ att korrekt initialvÀrde kan sÀttas.
Konventioner för namnsÀttning och anvÀndning av filer beror pÄ filtyp.
Klassfiler bör ges namn efter den publika klass de innehÄller. Till exempel,
klassen CController Äterfinns i filen CController.php file. En publik klass
Àr en klass som kan anvÀndas av varje annan klass. Varje klassfil bör innehÄlla
högst en publik klass. Privata klasser (klasser som bara anvÀnds av en enda
publik klass) kan placeras i samma fil som den publika klassen.
Filer med vyer (view files) namnges efter vyns namn. Till exempel, vyn index
finns i filen index.php. En vyfil Àr ett PHP-skript innehÄllande HTML- och
PHP-kod huvudsakligen Àmnad för presentation.
Konfigurationsfiler kan ges valfria namn. En konfigurationsfil Àr ett PHP-skript vars enda uppgift Àr att returnera en associativ array representerande konfigurationen.
Yii förvÀntar sig en standarduppsÀttning kataloger för olika ÀndamÄl. Var och en av dem kan anpassas om sÄ önskas.
WebRoot/protected: detta Àr applikationens baskatalog
innehÄllande alla ur sÀkerhetssynpunkt kÀnsliga PHP-skript och datafiler. Yii har ett standardalias application förknippat med denna sökvÀg. Denna
katalog och allting dÀrunder bör skyddas frÄn tillgÄng för vanliga webbanvÀndare. Anpassning kan ske via CWebApplication::basePath.
WebRoot/protected/runtime: denna katalog innehÄller privata tillfÀlliga filer, genererade vid körning av applikationen. Webbserverprocessen mÄste ha skrivrÀttighet till denna katalog. Anpassning kan ske via CApplication::runtimePath.
WebRoot/protected/extensions: denna katalog innehÄller alla tredjepartstillÀgg. Anpassning kan ske via CApplication::extensionPath. Yii har ett standardalias ext förknippat med denna sökvÀg.
WebRoot/protected/modules: denna katalog innehÄller alla applikationens moduler, var och en representerad som en underkatalog.
WebRoot/protected/controllers: denna katalog innehÄller alla kontrollerklassfiler. Anpassning kan ske via CWebApplication::controllerPath.
WebRoot/protected/views: denna katalog innehÄller alla vyfiler, inklusive kontrollervyer, layoutvyer samt systemvyer. Anpassning kan ske via CWebApplication::viewPath.
WebRoot/protected/views/ControllerID: denna katalog innehÄller vyer tillhörande en specifik kontrollerklass. ControllerID stÄr för kontrollerns ID. Anpassning kan ske via CController::viewPath.
WebRoot/protected/views/layouts: denna katalog innehÄller alla filer med layoutvyer. Anpassning kan ske via CWebApplication::layoutPath.
WebRoot/protected/views/system: denna katalog innehÄller alla filer med systemvyer. Systemvyer Àr mallar som anvÀnds till att presentera exception och felmeddelanden. Anpassning kan ske via CWebApplication::systemViewPath.
WebRoot/assets: denna katalog innehÄller publicerade resursfiler (asset files), som Àr privata filer vilka behöver göras tillgÀngliga för webbanvÀndare. Webbserverprocessen mÄste ha skrivrÀttighet till denna katalog. Anpassning kan ske via CAssetManager::basePath.
WebRoot/themes: denna katalog innehÄller olika teman att applicera pÄ applikationen. Varje underkatalog representerar ett specifikt tema med samma namn som underkatalogen. Anpassning kan ske via CThemeManager::basePath.
De flesta webbapplikationer anvÀnder sig av nÄgon databas. För bÀsta resultat, rekommenderas följande namngivingskonventioner för databastabeller och -kolumner. MÀrk att de inte utgör krav frÄn Yii:s sida.
BÄde databastabeller och -kolumner namnges med gemena (lower case).
Ord i ett namn separeras med understreck (underscore) t.ex. product_order.
För tabellnamn, kan antingen singularis eller pluralis anvÀndas, men inte bÄde och. För enkelhets skull rekommenderas namn i singularisform.
Tabellnamn kan föregÄs av ett gemensamt prefix sÄ som tbl_. Detta Àr speciellt anvÀndbart
nÀr tabellerna som hör till en applikation samexisterar, i samma databas, med tabeller
som hör till en annan applikation. De tvÄ uppsÀttningarna tabeller kan sÀrskiljas genom
anvÀndning av olika tabellnamnprefix.
Found a typo, or you think this page needs improvement?
Edit it on GitHub !
Signup or Login in order to comment.