Commit e39ebd35 by Paul Klimov

Merge branch 'master' of github.com:yiisoft/yii2

parents e796d1fa 2a78998d
......@@ -40,8 +40,8 @@ $foo = new Foo($bar);
### Inyección de Setters y Propiedades <a name="setter-and-property-injection"></a>
La inyección de setters y propiedades se admite a través de [configuraciones](concept-configurations.md). Cuando se
registra una dependencia o se crea un nuevo objeto,se puede proporcionar una configuración que usará el contenedor
para inyectar las dependencia a través de sus correspondientes setters y propiedades. Por ejemplo,
registra una dependencia o se crea un nuevo objeto, se puede proporcionar una configuración que usará el contenedor
para inyectar las dependencias a través de sus correspondientes setters y propiedades. Por ejemplo,
```php
use yii\base\Object;
......@@ -321,4 +321,4 @@ comprensión de la inyección de dependencias y de la localización de servicios
Yii implementa su propio [localizador de servicios](concept-service-locator.md) por encima del contenedor de ID.
Cuando un localizador de servicios intenta crear una nueva instancia de objeto, se desviará la llamada al contenedor
de ID. Este último resolverá las dependencias automáticamente como se ha descrito anteriormente.
\ No newline at end of file
de ID. Este último resolverá las dependencias automáticamente como se ha descrito anteriormente.
......@@ -12,7 +12,7 @@ Registra el [[yii\base\Application::errorHandler|error handler]].
Inicializa las propiedades de aplicación usando la configuración de la aplicación dada.
Llama a [[yii\base\Application::init()|init()]] que a su vez llama a [[yii\base\Application::bootstrap()|bootstrap()]] para ejecutar componentes de bootstrapping.
Incluye el archivo de manifiesto de extensiones ‘vendor/yiisoft/extensions.php’
Crea y ejecuta [compoentenes de bootstrap](structure-extensions.md#bootstrapping-classes) declarados por las extensiones.
Crea y ejecuta [componentes de bootstrap](structure-extensions.md#bootstrapping-classes) declarados por las extensiones.
Crea y ejecuta [componentes de aplicación](structure-application-components.md) y/o [módulos](structure-modules.md) que se declaran en la [propiedad bootstrap](structure-applications.md#bootstrap) de la aplicación.
Debido a que el trabajo de bootstrapping se tiene que ejecutar antes de gestionar *todas* las peticiones, es muy importante mantener este proceso ligero y optimizado lo máximo que sea posible.
......
Gestión de Errores
Gestión de Errores
==================
Yii incluye un [[yii\web\ErrorHandler|error handler]] que permite una gestión de errores mucho más práctica que
......@@ -87,7 +87,7 @@ personalizar la visualización de los errores.
### Uso de Acciones de Error <a name="using-error-actions"></a>
Una mejor manera de personalizar la visualizacion de errores es usar un [acción](structure-controllers.md) de error
Una mejor manera de personalizar la visualización de errores es usar un [acción](structure-controllers.md) de error
dedicada. Para hacerlo, primero se debe configurar la propiedad [[yii\web\ErrorHandler::errorAction|errorAction]] del
componente `errorHandler` como en el siguiente ejemplo:
......@@ -127,7 +127,7 @@ class SiteController extends Controller
```
El código anterior define la acción `error` usando la clase [[yii\web\ErrorAction]] que renderiza un error usando la
la vista llamada `error`.
vista llamada `error`.
Además, usando [[yii\web\ErrorAction]], también se puede definir la acción `error` usando un método de acción como en
el siguiente ejemplo,
......@@ -156,7 +156,11 @@ a las siguientes variables si se define el error como un [[yii\web\ErrorAction]]
### Personalizar el Formato de Respuesta de Error <a name="error-format"></a>
El gestor de errores muestra los errores de siguiente la configuración del formato de las
[respuestas](runtime-responses.md). Si el [[yii\web\Response::format response format]] es `html`, se usará la vista de error o excepción para mostrar los errores tal y como se ha descrito en la anterior subsección. Para otros tipos de formatos de respuesta, el gestor de errores asignara la representación del array de la excepción a la propiedad [[yii\web\Response::data]] que posteriormente podrá convertirse al formato deseado. Por ejemplo, si el formato de respuesta es `json`, obtendremos la siguiente respuesta:
[respuestas](runtime-responses.md). Si el [[yii\web\Response::format response format]] es `html`, se usará la vista de
error o excepción para mostrar los errores tal y como se ha descrito en la anterior subsección. Para otros tipos de
formatos de respuesta, el gestor de errores asignara la representación del array de la excepción a la propiedad
[[yii\web\Response::data]] que posteriormente podrá convertirse al formato deseado. Por ejemplo, si el formato de
respuesta es `json`, obtendremos la siguiente respuesta:
```
HTTP/1.1 404 Not Found
......@@ -173,7 +177,8 @@ Content-Type: application/json; charset=UTF-8
}
```
Se puede personalizar el formato de respuestas de error respondiendo al evento `beforeSend` del componente `response` en la configuración de la aplicación:
Se puede personalizar el formato de respuestas de error respondiendo al evento `beforeSend` del componente `response`
en la configuración de la aplicación:
```php
return [
......
Registro de anotaciones
Registro de anotaciones
=======================
Yii proporciona un poderoso framework dedicado al registro de anotaciones (logging) que es altamente personalizable y
......@@ -35,7 +35,7 @@ ejemplo registra la huella del mensaje para la categoría `application`:
Yii::trace('start calculating average revenue');
```
> Información: Los mensajes de registro pueden ser tanto cadenas de texto como datos complejos, como arrays o objetos.
> Información: Los mensajes de registro pueden ser tanto cadenas de texto como datos complejos, como arrays u objetos.
Es responsabilidad de los [destinos de registros](#log-targets) tratar los mensajes de registro de manera apropiada.
De forma predeterminada, si un mensaje de registro no es una cadena de texto, se exporta como si fuera un string
llamando a [[yii\helpers\VarDumper::export()]].
......@@ -65,10 +65,11 @@ linea anterior de código se llamara dentro de este método.
Un destino de registro es una instancia de la clase [[yii\log\Target]] o de una clase hija. Este filtra los
mensajes de registro por sus niveles de severidad y sus categorías y después los exporta a algún medio. Por ejemplo,
un [[yii\log\DbTarget|database target]] exporta los mensajes de registro filtrados a una tabla de base de datos,
mientras que un [[yii\log\EmailTarget|email target]] exporta los mensajes de registro a una dirección de correo electrónico específica.
mientras que un [[yii\log\EmailTarget|email target]] exporta los mensajes de registro a una dirección de correo
electrónico específica.
Se pueden registrar múltiples destinos de registros en una aplicación configurándolos en la
[aplicación de componente ](structure-application-components.md) `log` dentro de la configuración de aplicación, como
[aplicación de componente](structure-application-components.md) `log` dentro de la configuración de aplicación, como
en el siguiente ejemplo:
```php
......@@ -121,8 +122,8 @@ A continuación, se describirá las características más comunes de todos los d
### Filtrado de Mensajes <a name="message-filtering"></a>
Se pueden configurar las propiedades [[yii\log\Target::levels|levels]] y [[yii\log\Target::categories|categories]] para
cada destino de registros, con estas se especifican los niveles de severidad y las categorías de mensajes que
Se pueden configurar las propiedades [[yii\log\Target::levels|levels]] y [[yii\log\Target::categories|categories]]
para cada destino de registros, con estas se especifican los niveles de severidad y las categorías de mensajes que
deberán procesar sus destinos.
La propiedad [[yii\log\Target::levels|levels]] es un array que consta de uno o varios de los siguientes valores:
......@@ -132,7 +133,7 @@ La propiedad [[yii\log\Target::levels|levels]] es un array que consta de uno o v
* `info`: correspondiente a los mensajes registrados por [[Yii::info()]].
* `trace`: correspondiente a los mensajes registrados por [[Yii::trace()]].
* `profile`: correspondiente a los mensajes registrados por [[Yii::beginProfile()]] y [[Yii::endProfile()]], que se
explicara más detalladamente en la subsección [Perfiles](#performance-profiling).
explicará más detalladamente en la subsección [Perfiles](#performance-profiling).
Si no se especifica la propiedad [[yii\log\Target::levels|levels]], significa que el destino procesará los
mensajes de *cualquier* nivel de severidad.
......@@ -149,7 +150,7 @@ los mensajes de *todas* las categorías.
Además añadiendo las categorías en listas blancas (whitelisting) mediante la propiedad
[[yii\log\Target::categories|categories]], también se pueden añadir ciertas categorías en listas negras (blacklist)
configurando la propiedad [[yii\log\Target::except|except]]. Si se encuentra la categoría de un mensajes o coincide
configurando la propiedad [[yii\log\Target::except|except]]. Si se encuentra la categoría de un mensaje o coincide
algún patrón con esta propiedad, NO será procesada por el destino.
La siguiente configuración de destinos especifica que el destino solo debe procesar los mensajes de error y
......@@ -250,7 +251,7 @@ mensaje de registro se le añadirán como mucho 3 niveles de la pila de llamadas
si `YII_DEBUG` está deshabilitado, no se incluirá información de la pila de llamadas.
> Información: Obtener información de la pila de llamadas no es trivial. Por lo tanto, sólo se debe usar esta
características durante el desarrollo o cuando se depura la aplicación.
característica durante el desarrollo o cuando se depura la aplicación.
### Liberación (Flushing) y Exportación de Mensajes <a name="flushing-exporting"></a>
......@@ -352,7 +353,7 @@ La creación de nuevas clases de destinos de registro es muy simple. Se necesita
llamar al método [[yii\log\Target::formatMessage()]] para formatear los mensajes. Se pueden encontrar más detalles de
destinos de registros en las clases incluidas en la distribución de Yii.
## Perfilado de Rendimiento <a name="performance-profiling"></a>
## Perfilado de Rendimiento <a name="performance-profiling"></a>
El Perfilado de rendimiento es un tipo especial de registro de mensajes que se usa para medir el tiempo que tardan en
ejecutarse ciertos bloques de código y encontrar donde están los cuellos de botella de rendimiento. Por ejemplo, la
......@@ -394,4 +395,4 @@ Si nos dejamos el `\Yii::endProfile('block1')` o lo intercambiamos `\Yii::endPro
Se registra un mensaje de registro con el nivel de severidad `profile` para cada bloque de código que se haya
perfilado. Se puede configurar el [destino del registro](#log-targets) para reunir todos los mensajes y exportarlos.
El [depurador de Yii](tool-debugger.md) incluye un panel de perfilado de rendimiento que muestra los resultados de
perfilado.
perfilado.
\ No newline at end of file
......@@ -4,8 +4,10 @@
Cada vez que una aplicación Yii gestiona una petición, se somete a un flujo de trabajo similar.
1. Un usuario hace una petición al [script de entrada](structure-entry-scripts.md) ‘web/index.php’.
2. El script de entrada carga la [configuración](concept-configurations.md) y crea una instancia de la [aplicación](structure-applications.md) para gestionar la petición.
3. La aplicación resuelve la [ruta](runtime-routing.md) solicitada con la ayuda del componente [petición](runtime-requests.md) de la aplicación.
2. El script de entrada carga la [configuración](concept-configurations.md) y crea una instancia de la
[aplicación](structure-applications.md) para gestionar la petición.
3. La aplicación resuelve la [ruta](runtime-routing.md) solicitada con la ayuda del componente
[petición](runtime-requests.md) de la aplicación.
4. La aplicación crea una instancia del [controlador](structure-controllers.md) para gestionar la petición.
5. El controlador crea una instancia de la [acción](structure-controllers.md) y ejecuta los filtros para la acción.
6. Si algún filtro falla, se cancela la acción.
......
Enrutamiento y Creación de URLS
Enrutamiento y Creación de URLS
===============================
Cuando una aplicación Yii empieza a procesar una URL solicitada, lo primero que hace es convertir la URL en una
[ruta](structure-controllers.md#routes). Luego se usa la ruta para instanciar la
[acción de controlador](structure-controllers.md) correspondiente para gestionar al petición. A este proceso se
[acción de controlador](structure-controllers.md) correspondiente para gestionar la petición. A este proceso se
le llama *enrutamiento*.
El proceso inverso se llama *creación de URLs*, y crea una URL a partir de una ruta dada y unos parámetros de consulta
......@@ -55,14 +55,14 @@ diseñar una serie de [[yii\web\UrlManager::rules|URL rules]] de acuerdo con el
deben mostrarse las URLs.
Se puede cambiar entre los dos formatos de URL conmutando la propiedad
[[yii\web\UrlManager::enablePrettyUrl|enablePrettyUrl]] del [[yii\web\UrlManager|URL manager]] sin cambiar ningún
[[yii\web\UrlManager::enablePrettyUrl|enablePrettyUrl]] del [[yii\web\UrlManager|URL manager]] sin cambiar ningún
otro código de aplicación.
## Enrutamiento <a name="routing"></a>
El Enrutamiento involucra dos pasos. El primero, la petición (request) entrante se convierte en una ruta y sus parámetros
de consulta asociados. En el segundo paso, se crea la correspondiente [acción de controlador](structure-controllers.md)
para la ruta convertida para que gestione la petición.
El Enrutamiento involucra dos pasos. El primero, la petición (request) entrante se convierte en una ruta y sus
parámetros de consulta asociados. En el segundo paso, se crea la correspondiente
[acción de controlador](structure-controllers.md) para la ruta convertida para que gestione la petición.
Cuando se usa el formato predefinido de URL, convertir una petición en una ruta es tan simple como obtener los valores
del parámetro de consulta `GET` llamado `r`.
......@@ -71,7 +71,7 @@ Cuando se usa el formato de URL amigable, el [[yii\web\UrlManager|URL manager]]
[[yii\web\UrlManager::rules|URL rules]] registradas para encontrar alguna que pueda convertir la petición en una ruta.
Si no se encuentra tal regla, se lanzará una excepción de tipo [[yii\web\NotFoundHttpException]].
Una vez que la la petición se a convertido en una ruta, es el momento de crear la acción de controlador identificada
Una vez que la petición se ha convertido en una ruta, es el momento de crear la acción de controlador identificada
por la ruta. La ruta se desglosa en múltiples partes a partir de las barras que contenga. Por ejemplo, `site/index`
será desglosado en `site` e `index`. Cada parte is un ID que puede hacer referencia a un modulo, un controlador o una
acción. Empezando por la primera parte de la ruta, la aplicación, sigue los siguientes pasos para generar
......@@ -79,7 +79,7 @@ acción. Empezando por la primera parte de la ruta, la aplicación, sigue los si
1. Establece la aplicación como el modulo actual.
2. Comprueba si el [[yii\base\Module::controllerMap|controller map]] del modulo actual contiene un ID actual. Si lo
tiene, se creará un objeto controlador de de acuerdo con la configuración del controlador encontrado en el mapa, y
tiene, se creará un objeto controlador de acuerdo con la configuración del controlador encontrado en el mapa, y
se seguirá el Paso 5 para gestionar la parte restante de la ruta.
3. Comprueba si el ID hace referencia a un modulo listado en la propiedad [[yii\base\Module::modules|modules]] del
módulo actual. Si está listado, se crea un modulo de acuerdo con la configuración encontrada en el listado de
......@@ -293,7 +293,7 @@ configuración de [[yii\web\UrlManager::rules|rules]] declara dos reglas de URL.
> Información; El patrón en una regla se usa para encontrar coincidencias en la parte de información de la URL.
Por ejemplo, la parte de información de la ruta `/index.php/post/100?source=ad` es `post/100`
(la primera barra y la ultima son son ignoradas) que coincide con el patrón `post/(\d+)`.
(la primera barra y la ultima son ignoradas) que coincide con el patrón `post/(\d+)`.
Entre la declaración de reglas de URL como pares de patrón-ruta, también se pueden declarar como arrays de
configuración. Cada array de configuración se usa para configurar un único objeto de tipo regla de URL. Este proceso
......@@ -343,9 +343,9 @@ declarado las siguientes tres URLs:
Cuando se usen las reglas para convertir URLs:
- `/index.php/posts` se convierte en la ruta `post/index` usando la primera regla;
- `/index.php/posts/2014/php` se convierte en la ruta `post/index`, el parámetro `year` cuyo valor es 2014 y el
- `/index.php/posts/2014/php` se convierte en la ruta `post/index`, el parámetro `year` cuyo valor es 2014 y el
parámetro `category` cuyo valor es `php` usando la tercera regla;
- `/index.php/post/100` se convierte en al ruta `post/view` y el parámetro `id` cuyo valor es 100 usando la segunda
- `/index.php/post/100` se convierte en la ruta `post/view` y el parámetro `id` cuyo valor es 100 usando la segunda
regla;
- `/index.php/posts/php` provocara una [[yii\web\NotFoundHttpException]] cuando
[[yii\web\UrlManager::enableStrictParsing]] sea true, ya que no coincide ninguno de los parámetros . Si
......@@ -649,4 +649,4 @@ especificas y/o las que se usen más a menudo.
Si algunas URLs comparten el mismo prefijo en sus patrones o rutas, se puede considerar usar [[yii\web\GroupUrlRule]]
ya que puede ser más eficiente al ser examinado por [[yii\web\UrlManager|URL manager]] como un grupo. Este suele ser
el caso cuando una aplicación se compone por módulos, y cada uno tiene su propio conjunto de reglas con un ID de
módulo para sus prefijos más comunes.
módulo para sus prefijos más comunes.
\ No newline at end of file
Widgets de Bootstrap
Widgets de Bootstrap
====================
> Nota: Esta sección está bajo desarrollo.
Yii incluye soporta las marcas y componentes del framework [Bootstrap 3](http://getbootstrap.com/) (también conocido como "Twitter Bootstrap"). Bootstrap es un excelente, adaptable framework que puede aumentar la velocidad de desarrollo de los procesos del lado del cliente.
El núcleo de Bootstrap está represntado en dos partes:
El núcleo de Bootstrap está representado en dos partes:
- Elementos básicos de CSS, como son un sistema de diseño en formato cuadrícula , tipografía, clases de ayuda (helpers), y utilidades adapatables(responsive).
- Elementos básicos de CSS, como son un sistema de diseño en formato cuadrícula , tipografía, clases de ayuda (helpers), y utilidades adaptables(responsive).
- Componentes preparados para su uso, tales como formularios, menús, paginación, cajas modales, pestañas, etc
Elementos básicos
------
-----------------
Yii no hace uso de elementos básicos de boostrap en el código PHP ya que HTML es muy simple por sí mismo, en este caso. Puedes encontrar detalle del uso de estos elementos básicos en [sitio web de la documentación de bootstrap](http://getbootstrap.com/css/). Aún así Yii provee una manera conveniente de incluir los elementos básicos de los recursos de bootstrap en tus páginas con una simple línea añadida a `AppAsset.php` localizada en tu directorio `@app/assets` :
......@@ -26,7 +26,7 @@ public $depends = [
Usar bootstrap a través de el gestor de recursos Yii te permite minimizar estos recursos y combinar con tus propios recursos cuando sea necesario..
Widgets de Yii
-----------
--------------
Componentes más complejos de bootstrap components están envueltos dentro de widgets de Yii para permitir una sintaxis más robusta e integrar con las posibilidades y características del framework. Todos los widgets pertenecen al espacio de nombres `\yii\bootstrap` :
......@@ -46,9 +46,9 @@ Componentes más complejos de bootstrap components están envueltos dentro de wi
Usando los ficheros .less de Bootstrap directamente
-------------------------------------------
---------------------------------------------------
Si quieres incluir el [Css Bootstrap directamente en tus ficheros less](http://getbootstrap.com/getting-started/#customizing) puedes necesitar desactivar la carga los ficheros css originales de bootstrap.
Si quieres incluir el [CSS Bootstrap directamente en tus ficheros less](http://getbootstrap.com/getting-started/#customizing) puedes necesitar desactivar la carga los ficheros css originales de bootstrap.
Esto lo puedes hacer poniendo la propiedad css de [[yii\bootstrap\BootstrapAsset|BootstrapAsset]] vacía.
Para esto necesitas configurar el `assetManager` [componente de la aplicación](structure-application-components.md) como sigue:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment