Alias de rutas.
- Permite establecer nombres cortos para ciertas rutas de uso frecuente.
- Utiliza el punto como separador de ruta: AliasRuta.directorio1.directorio2.objetivo.
- Es posible definir nuevos alias invocando YiiBase::setPathOfAlias().
- El proceso contrario, convertir un alias en su correspondiente ruta, puede realizarse invocando YiiBase::getPathOfAlias().
- Yii define los siguientes alias de manera predefinida.
- system: directorio del framework.
- application: directorio base de aplicaciones.
- webroot: directorio donde se encuentra el script de entrada.
- Los alias se pueden utilizar en múltiples situaciones.
Yii::import(‘system.web.CController’);Inclusive referenciando grupos de clases.
Yii::import(‘system.web.*’);
Código.
- PHP soporta el uso de namespaces a partir de su versión 5.3.0.
- Las clases nativas de Yii inician siempre con la letra C.
- Para evitar colisiones de nombres se recomienda que las clases definidas por el usuario inicien por una determinada letra (diferente de la anterior).
- Los nombres de las variables, funciones y clases deben estar en camel case, es decir, en mayúsculas la primera letra de cada palabra.
- Los nombres de las variables/atributos y métodos empiezan por minúsculas.
- Los nombres de las clases empiezan por mayúsculas.
- Los atributos privados empiezan por underscore (‘_‘).
Rutas.
- Por defecto se utiliza el siguiente formato.
http://hostname/index.php?r=ControladorId/AcciónId - Es posible reescribir esta ruta a una mas amigable con SEO.
http://hostname/ControladorId/AcciónId.html - Si se obvia la acción se utilizará la acción por defecto: index.
- Si se obvian el controlador y la acción se utilizarán sus versiones por defecto: main/index.
Archivos.
- Los nombres de los archivos de clases dependen de la clase pública que contienen y la nomenclatura para esa entidad.
- Cada archivo debe contener una única clase pública y cero o mas clases privadas.
- Los archivos de configuración pueden tener un nombre arbitrario.
Directorios.
- Esta es la estructura general de directorios de Yii.
- WebRoot/protected: es el directorio base de las aplicaciones.
- A él le hace referencia el alias application.
- Debe ser protegido en contra del acceso directo por los usuarios con un .htaccess.
- Se puede personalizar a través de CWebApplication::basePath.
- WebRoot/protected/runtime: archivos temporales generados durante la ejecución.
- Debe tener privilegios de lectura/escritura por parte del servidor web.
- Se puede personalizar a través de CApplication::runtimePath.
- WebRoot/protected/extensions: almacena extensiones desarrolladas por terceros.
- Se puede personalizar a través de CApplication::extensionPath.
- WebRoot/protected/modules: almacena los módulos de la aplicación.
- WebRoot/protected/controllers: almacena las clases de los controladores.
- Se puede personalizar a través de CWebApplication::controllerPath.
- WebRoot/protected/views: almacena los archivos de las vistas.
- Se puede personalizar a través de CWebApplication::viewPath.
- WebRoot/protected/views/ControladorId: almacena las vistas de un controlador específico.
- Se puede personalizar a través de CController::getViewPath.
- WebRoot/protected/views/layouts: almacena los archivos del layout de las vistas.
- Se puede personalizar a través de CWebApplication::layoutPath.
- WebRoot/protected/views/system: almacena las vistas del sistema.
- Se puede personalizar a través de CWebApplication::systemViewPath.
- WebRoot/assets: almacena los assets publicados.
- Debe tener privilegios de lectura/escritura por parte del servidor web.
- Se puede personalizar a través de CAssetManager::basePath.
- WebRoot/themes: almacena los temas de la aplicación.
- Cada subdirectorio representa un tema diferente.
- Se puede personalizar a través de CThemeManager::basePath.
- WebRoot/protected: es el directorio base de las aplicaciones.
Enlaces.
- The definitive guide to Yii.
http://www.yiiframework.com/doc/guide/- Path alias and namespace.
http://www.yiiframework.com/doc/guide/basics.namespace - Conventions.
http://www.yiiframework.com/doc/guide/basics.convention
- Path alias and namespace.