Analizzando il file di ingresso della nostra applicazioni, il file index.php, si può notare da subito che l'applicazione viene avviata mediante il richiamo di un metodo statico della classe Yii
Yii::createWebApplication($config)->run();
Da questo punto in poi è possibile utilizzare tutti i metodi che la classe mette a disposizione. Il metodo che ci interessa in questo momento è getPathOfAlias.
Scrivendo infatti una cosa del tipo
echo Yii::getPathOfAlias('webroot');
verrà visualizzato il percorso della nostra applicazione.
Conoscere questi percorsi è molto utile quando bisogna importare i file all'interno dei nostri script.
È possibile invece definire gli alias personalizzati utilizzando il metodo setPathOfAlias
nel seguente modo:
Yii::setPathOfAlias('mioAlias',$path);
dove $path può essere ricavato con l'ausilio del metodo getPathOfAlias
.
Ad esempio, per la cartella test situata nella root della nostra applicazione, potremmo scrivere in questo modo :
$testPath = Yii::getPathOfAlias('webroot')."/test";
Yii::setPathOfAlias('test', $testPath);
echo Yii::getPathOfAlias('test');
Comando che visualizzerà, nel nostro caso, D:/www5/yii/app/test.
All'interno della guida faremo spesso riferimento agli alias per indicare la posizione dei file che ci interessano. Yii ci viene in soccorso anche in questo con una banalissima funzione:
Yii::import('alias');
Partendo da un alias è possibile quindi importare qualsiasi file. Le cartelle all'interno di quelle definite dall'alias, vengono concatenate all'alias mediante il punto. Quindi utilizzando l'alias appena creato:
Yii::import('test.*');
$t = new test();
Con la sintassi appena indicata importiamo quindi tutte le classi che sono contenute nella cartella test. Il vantaggio di utilizzare il metodo import
fornito da Yii, invece di require
o include
, è che in questo modo il file viene incluso se, e solo se, viene istanziata la classe. È chiaro che utilizzando una sintassi del genere per tutte le nostre classi personali, non dobbiamo preoccuparci di includerle dove servono. Ci penserà Yii a farlo per noi senza correre il rischio di includere file inutili.