Yii2 framework backup
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

5.7 KiB

Componentes de la Aplicación

Las aplicaciones son service locators (localizadores de servicios). Ellas albergan un grupo de los llamados componentes de aplicación que proveen diferentes servicios para procesar el request (petición). Por ejemplo, el componente urlManager es responsable por rutear Web requests (peticiones) a los controladores apropiados; el componente db provee servicios relacionados a base de datos; y así sucesivamente.

Cada componente de la aplicación tiene un ID que lo identifica de forma inequívoca de otros en la misma aplicación. Puedes acceder a un componente de la aplicación con la siguiente expresión:

\Yii::$app->ComponentID

Por ejemplo, puedes utilizar \Yii::$app->db para obtener la yii\db\Connection, y \Yii::$app->cache para obtener el yii\caching\Cache registrado con la aplicación.

Estos componentes pueden ser cualquier objeto. Puedes registrarlos configurando la propiedad yii\base\Application::components en las configuraciones de la aplicación. Por ejemplo:

[
    'components' => [
        // registra el componente "cache" utilizando el nombre de clase
        'cache' => 'yii\caching\ApcCache',

        // registra el componente "db" utilizando un array de configuración
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=demo',
            'username' => 'root',
            'password' => '',
        ],

        // registra el componente "search" utilizando una función anónima
        'search' => function () {
            return new app\components\SolrService;
        },
    ],
]

Info: A pesar de que puedes registrar tantos componentes como desees, deberías hacerlo con criterio. Los componente de la aplicación son como variables globales. Abusando demasiado de ellos puede resultar en un código más difícil de mantener y testear. En muchos casos, puedes simplemente crear un componente local y utilizarlo únicamente cuando sea necesario.

Componentes del Núcleo de la Aplicación

Yii define un grupo de componentes del núcleo con IDs fijos y configuraciones por defecto. Por ejemplo, el componente yii\web\Application::request es utilizado para recolectar información acerca del request del usuario y resolverlo en una ruta; el componente yii\base\Application::db representa una conexión a la base de datos a través del cual realizar consultas a la misma. Es con ayuda de estos componentes del núcleo que Yii puede manejar los request del usuario.

A continuación, hay una lista de componentes predefinidos en el núcleo. Puedes configurarlos y personalizarlos como lo haces con componentes normales de la aplicación. Cuando configuras un componente del núcleo, si no especificas su nombre de clase, la clase por defecto será utilizada.