Yii använder sökvägsalias extensivt. Ett sökvägsalias är associerat till en katalog eller filsökväg. Det specificeras med punktnotation, snarlikt detta vanligt förekommande namnområdesformat (namespace format):
RootAlias.path.to.target
där RootAlias
är alias för någon befintlig katalog. Nya sökvägsalias kan definieras
genom anrop av YiiBase::setPathOfAlias(). För att underlätta fördefinierar Yii
följande rot-alias:
system
: refererar till Yii:s framework-katalog;application
: refererar till applikationens rotkatalog;webroot
: refererar till katalogen som innehåller startskriptet. Detta alias har varit tillgängligt sedan version 1.0.3.ext
: refererar till katalogen som innehåller alla tredjepartstillägg. Detta alias har varit tillgängligt sedan version 1.0.8.Om applikationen dessutom använder sig av moduler, fördefinieras också ett rotalias för varje modul-ID. Detta alias refererar till modulens rotsökväg. Denna finess har varit tillgängligt fr o m version 1.0.3.
Genom anrop till YiiBase::getPathOfAlias() kan ett alias översättas till dess
motsvarande sökväg. Till exempel, system.web.CController
skulle översättas
till yii/framework/web/CController
.
Med hjälp av alias är det mycket bekvämt att importera definitionen för en klass. Till exempel, för att inkludera definitionen för klassen CController, kan vi skriva följande:
Yii::import('system.web.CController');
Metoden import skiljer sig från include
och require
genom
att den är effektivare. Klassdefinitionen som skall importeras inkluderas inte
förrän den refereras till första gången. Att importera samma namnområde flera
gånger är också det mycket snabbare än include_once
och require_once
.
Tips: När en klass som definieras av Yii-ramverket refereras, behöver denna inte importeras eller inkluderas. Alla kärnklasser i Yii importeras i förväg.
Följande syntax kan användas för att importera en hel katalog, så att klassfilerna i katalogen automatiskt inkluderas när så erfordras.
Yii::import('system.web.*');
Förutom import, används alias även på många andra ställen för att referera till klasser. Till exempel kan ett alias lämnas med till Yii::createComponent() för att skapa en instans av motsvarande klass, även om klassfilen inte tidigare inkluderats.
Förväxla inte sökvägsalias med namnområde. Ett namnområde refererar till logisk gruppering av ett antal klassnamn så att de kan särskiljas från andra klasser med samma namn, medan sökvägsalias används för att referera till en klassfil eller sökväg. Det uppstår ingen konflikt mellan sökvägsalias och namnområden.
Tips: Då PHP före version 5.3.0 inte har inbyggt stöd för namnområden, går det inte att ha instanser av två klasser med samma namn men olika definitioner. Av denna anledning har alla Yii-klasser namn med prefixet 'C' (som i 'class'), så att de kan skiljas från användardefinierade klasser. Det rekommenderas att C- prefixet reserveras för användning endast av Yii-ramverket, och att användardefinierade klasser förses med någon annan prefixbokstav.
Signup or Login in order to comment.