0 follower

Konventioner

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.

1. URL ¶

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.

2. Kod ¶

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).

3. Konfiguration ¶

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.

4. File ¶

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.

5. Filkatalog ¶

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.

6. Databas ¶

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 !