Los módulos en Yii

Introducción.

  • Son unidades autocontenidas de software.
  • Tienen sus propios modelos, vistas, controladores y demás componentes de soporte.
  • Se asemejan a una aplicación pero no pueden ser desplegados individualmente, deben residir como parte de  una aplicación.
  • Los usuarios acceeden a los controladores de los módulos de la misma forma como se acceden los controladores convencionales.
  • Son útiles para dividir el desarrollo y mantenimiento de aplicaciones muy grandes en módulos independientes.
  • Facilitan la reutilización de código a alto nivel.
  • Se utilizan para implementar funcionalidades como autenticación, manejo de usuarios, manejo de comentarios, etc.

Estructura.

  • Cada módulo tiene una clase principal que hereda de CWebModule.
  • El nombre de la clase se determina de la siguiente manera: ucfirst(IdentificadorMódulo) . ‘Module’.
    • Ejemplo, la clase del módulo gallery debe llamarse GalleryModule.
  • Esta clase se utiliza para almacenar información y características que son comúnes a todo el módulo.
    • CWebModule::params almacena los parámetros del módulo.
    • CWebModule:: components comparte componentes de aplicación a nivel del módulo.

Creación.

Utilizando yiic.

yiic permite crear fácilmente un esqueleto básico del módulo para empezar a trabajar sobre él.

$ cd WebRoot/MiAplicacion
$ protected/yiic shell

Yii Interactive Tool v1.0
Please type ‘help’ for help.  Type ‘exito’ to quit.

>> module gallery

Uso.

  • Copie el directorio del módulo en el directorio modules de la aplicación.
  • Declare el módulo (con su identificador) en la propiedad modules de la configuración de la aplicación de la siguiente manera.
    return array (
        // ...
        'modules' => array('gallery', /* ... */),
        // ...
    );
  • Es posible especificar valores iniciales para las propiedades del módulo de la siguiente manera.
    return array (
        // ...
        'modules' => array(
            'gallery' => array(
                'fileType' => 'png',
                'rows' => 10,
                'cols' => 3
            ),
            /* ... */
         ),
        // ...
    );
  • La instancia del módulo puede ser accedida a través de la propiedad module del controlador acrivo.
    $rows = Yii::app() -> controller -> module -> rows;
  • Los módulos se acceden con la ruta módulo/controlador/acción.
    • Para el ejemplo, gallery/image/add corresponderá entonces con el URL http://www.servidor.com/index.php?r=gallery/image/add.
  • Un módulo puede contener a su vez a otros módulos los cuales pueden ser accedidos de manera similar: móduloPadre/móduloHijo/controlador/acción.

Enlaces.

Leave a Reply

Your email address will not be published. Required fields are marked *