Luciano Baraglia
10 years ago
1 changed files with 93 additions and 0 deletions
@ -0,0 +1,93 @@
|
||||
Componentes de la Aplicación |
||||
============================ |
||||
|
||||
Las aplicaciones son [service locators](concept-service-locators.md) (localizadores de servicios). Ellas albergan |
||||
un grupo de los llamados *componentes de aplicación* que proveen diferentes servicios para procesar el `request`. |
||||
Por ejemplo, el componente `urlManager` es responsable por rutear Web `requests` a los controladores apropiados; |
||||
el componente `db` provee servicios relacionados a base de datos; y así otros. |
||||
|
||||
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: |
||||
|
||||
```php |
||||
\Yii::$app->ComponentID |
||||
``` |
||||
|
||||
Por ejemplo, puedes utilizar `\Yii::$app->db` para obtener la [[yii\db\Connection|conexión a la base de datos]], |
||||
y `\Yii::$app->cache` para obtener el [[yii\caching\Cache|cache primario]] 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](structure-applications.md#application-configurations). |
||||
Por ejemplo: |
||||
|
||||
```php |
||||
[ |
||||
'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; |
||||
}, |
||||
], |
||||
] |
||||
``` |
||||
|
||||
> Información: A pesar de que puedes registrar tantos componentes como desees, deberías hacerlo criteriosamente. |
||||
Los componente de la aplicación son como variables globales. Usando demasiado de ellos puede resultar en |
||||
código más difícil de mantener y testear. En muchos casos, puedes simplemente crear un componente local |
||||
y utilizarlo cuando sea necesario. |
||||
|
||||
|
||||
## Componentes del Núcleo de la Aplicación <a name="core-application-components"></a> |
||||
|
||||
Yii define un grupo de componentes del *núcleo* con IDs fijos y configuraciones por defecto. Por ejemplo, |
||||
el componente [[yii\web\Application::request|request]] es utilizado para recolectar información acerca |
||||
del `request` del usuario y resolverlo en una [ruta](runtime-routing.md); el componente [[yii\base\Application::db|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. |
||||
|
||||
Debajo 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. |
||||
|
||||
* [[yii\web\AssetManager|assetManager]]: maneja los `assets bundles` y su publicación. |
||||
Consulta la sección [Menajando Assets](output-assets.md) para más detalles. |
||||
* [[yii\db\Connection|db]]: representa una conexión a la base de datos a través de la cual puedes realizar consultas a la misma. |
||||
Ten en cuenta que cuando configuras este componente, debes especificar el nombre de clase así como otras |
||||
propiedades requeridas por el mismo, como [[yii\db\Connection::dsn]]. |
||||
Por favor consulta la sección [Data Access Objects](db-dao.md) para más detalles. |
||||
* [[yii\base\Application::errorHandler|errorHandler]]: maneja errores y excepciones de PHP. |
||||
Por favor consulta la sección [Handling Errors](tutorial-handling-errors.md) para más detalles. |
||||
* [[yii\base\Formatter|formatter]]: da formato a los datos cuando son mostrados a los usuarios. Por ejemplo, un número |
||||
puede ser mostrado usando un separador de miles, una fecha en una forma extensa. |
||||
Por favor consulta la sección [Formato de Datos](output-formatting.md) para más detalles. |
||||
* [[yii\i18n\I18N|i18n]]: soporta traducción y formato de mensajes. |
||||
Por favor consulta la sección [Internacionalización](tutorial-i18n.md) para más detalles. |
||||
* [[yii\log\Dispatcher|log]]: maneja a dónde dirigir los logs. |
||||
Por favor consulta la sección [Logging](tutorial-logging.md) para más detalles. |
||||
* [[yii\swiftmailer\Mailer|mail]]: soporta construcción y envío de emails. |
||||
Por favor consulta la sección [Enviando Emails](tutorial-mailing.md) para más detalles. |
||||
* [[yii\base\Application::response|response]]: representa la respuesta enviada a los usuarios. |
||||
Por favor consulta la sección [Responses](runtime-responses.md) para más detalles. |
||||
* [[yii\base\Application::request|request]]: representa el `request` recibido de los usuarios. |
||||
Por favor consulta la sección [Requests](runtime-requests.md) para más detalles. |
||||
* [[yii\web\Session|session]]: representa la información de sesión. Este componente sólo está disponible |
||||
en [[yii\web\Application|alpicaciones Web]]. |
||||
Por favor consulta la sección [Sessions and Cookies](runtime-sessions-cookies.md) para más detalles. |
||||
* [[yii\web\UrlManager|urlManager]]: soporta el parseo y generación de URLs. |
||||
Por favor consulta la sección [URL Parsing and Generation](runtime-url-handling.md) para más detalles. |
||||
* [[yii\web\User|user]]: representa la información e autenticación del usuario. Este componente sólo está disponible |
||||
en [[yii\web\Application|aplicaciones Web]] |
||||
Por favor consulta la sección [Autenticación](security-authentication.md) para más detalles. |
||||
* [[yii\web\View|view]]: soporta el renderizado de las vistas. |
||||
Por favor consulta la sección [Vistas](structure-views.md) para más detalles. |
Loading…
Reference in new issue