20.11.2014 Views

O Guia Definitivo do Yii 1.1

O Guia Definitivo do Yii 1.1

O Guia Definitivo do Yii 1.1

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

RootAlias.path.to.target<br />

Onde RootAlias é o nome de um diretório existente. Ao executar o méto<strong>do</strong><br />

<strong>Yii</strong>Base::setPathOfAlias(), podemos definir novos apeli<strong>do</strong>s para caminhos. Por<br />

conveniência, o <strong>Yii</strong> já possui predefini<strong>do</strong>s os seguintes apeli<strong>do</strong>s:<br />

• system: refere-se ao diretório <strong>do</strong> <strong>Yii</strong> framework;<br />

• application: refere-se ao diretório base da aplicação;<br />

• webroot: refere-se ao diretório que contém o arquivo <strong>do</strong> script de entrada. Esse<br />

apeli<strong>do</strong> está disponível desde a versão 1.0.3.<br />

• ext: refere-se ao diretório que contém todas as extensões de terceiros. Esse apeli<strong>do</strong><br />

está disponível desde a versão 1.0.8.<br />

Além disso, se a aplicação utiliza módulos, um apeli<strong>do</strong> de diretório raiz (root alias) é<br />

predefini<strong>do</strong> para cada módulo, apontan<strong>do</strong> para o diretório base <strong>do</strong> módulo<br />

correspondente. Esta funcionalidade está disponível desde a versão 1.0.3.<br />

Ao usar o méto<strong>do</strong> <strong>Yii</strong>Base::getPathOfAlias(), um apeli<strong>do</strong> pode ser traduzi<strong>do</strong> para o seu<br />

caminho correspondente. Por exemplo, system.web.CController seria traduzi<strong>do</strong> parayii/<br />

framework/web/CController.<br />

A utilização de apeli<strong>do</strong>s é muito conveniente para importar a definição de uma classe. Por<br />

exemplo, se quisermos incluir a definição da classe CController podemos fazer o<br />

seguinte:<br />

<strong>Yii</strong>::import('system.web.CController');<br />

O méto<strong>do</strong> import é mais eficiente que o include e o require <strong>do</strong> PHP. Com ele, a definição<br />

da classe que está sen<strong>do</strong> importada não é incluída até que seja referenciada pela<br />

primeira vez. Importar o mesmo namespace várias vezes, também é muito mais rápi<strong>do</strong> <strong>do</strong><br />

que utilizar o include_once e o require_once.<br />

Dica: Quan<strong>do</strong> referenciamos uma das classes <strong>do</strong> <strong>Yii</strong> Framework, não precisamos<br />

importa-la ou inclui-la. Todas as classes <strong>Yii</strong> são pré-importadas.<br />

Podemos também utilizar a seguinte sintaxe para importar to<strong>do</strong> um diretório de uma só<br />

vez, de forma que os arquivos de classe dentro dele sejam automaticamente incluí<strong>do</strong>s,<br />

quan<strong>do</strong> necessário.<br />

<strong>Yii</strong>::import('system.web.*');<br />

Além <strong>do</strong> méto<strong>do</strong> import, apeli<strong>do</strong>s são utiliza<strong>do</strong>s em vários outros locais para se referir a<br />

classes. Por exemplo, um apeli<strong>do</strong> pode ser passa<strong>do</strong> para o méto<strong>do</strong> <strong>Yii</strong>::createComponent<br />

() para criar uma instância da classe informada, mesmo que o arquivo da classe ainda<br />

não tenha si<strong>do</strong> incluí<strong>do</strong>.<br />

Não confunda um path alias com um namespace. Um namespace refere-se a um<br />

agrupamento lógico de nomes de classes para que eles possam ser diferenciadas de

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!