Commit 0d09cc6d by Marco Da Silva

Update runtime-routing.md

correction to a php tag open
parent f08d6bab
...@@ -6,8 +6,7 @@ Cuando una aplicación Yii empieza a procesar una URL solicitada, lo primero que ...@@ -6,8 +6,7 @@ Cuando una aplicación Yii empieza a procesar una URL solicitada, lo primero que
[acción de controlador](structure-controllers.md) correspondiente para gestionar la 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*. 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 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 (query) asociados. Cuando posteriormente se solicita la URL creada, el proceso de enrutamiento puede resolverla y
(query) asociados. Cuando posteriormente se solicita la URL creada, el proceso de enrutamiento puede resolverla y
convertirla en la ruta original con los parámetros asociados. convertirla en la ruta original con los parámetros asociados.
La principal pieza encargada del enrutamiento y de la creación de URLs es [[yii\web\UrlManager|URL manager]], que se La principal pieza encargada del enrutamiento y de la creación de URLs es [[yii\web\UrlManager|URL manager]], que se
...@@ -20,7 +19,8 @@ Configurando el componente `urlManager` en la configuración de la aplicación, ...@@ -20,7 +19,8 @@ Configurando el componente `urlManager` en la configuración de la aplicación,
reconocimiento arbitrario de formatos de URL sin modificar el código de la aplicación existente. Por ejemplo, se reconocimiento arbitrario de formatos de URL sin modificar el código de la aplicación existente. Por ejemplo, se
puede usar el siguiente código para crear una URL para la acción `post/view`: puede usar el siguiente código para crear una URL para la acción `post/view`:
``` php use yii\helpers\Url; ``` php
use yii\helpers\Url;
// Url::to() llama a UrlManager::createUrl() para crear una URL // Url::to() llama a UrlManager::createUrl() para crear una URL
$url = Url::to(['post/view', 'id' => 100]); $url = Url::to(['post/view', 'id' => 100]);
...@@ -36,6 +36,7 @@ los parámetros. ...@@ -36,6 +36,7 @@ los parámetros.
/posts/100 /posts/100
``` ```
## Formatos de URL <a name="url-formats"></a> ## Formatos de URL <a name="url-formats"></a>
El [[yii\web\UrlManager|URL manager]] soporta dos formatos de URL: el formato predeterminado de URL y el formato URL El [[yii\web\UrlManager|URL manager]] soporta dos formatos de URL: el formato predeterminado de URL y el formato URL
...@@ -85,11 +86,8 @@ acción. Empezando por la primera parte de la ruta, la aplicación, sigue los si ...@@ -85,11 +86,8 @@ acción. Empezando por la primera parte de la ruta, la aplicación, sigue los si
módulo actual. Si está listado, se crea un modulo de acuerdo con la configuración encontrada en el listado de módulo actual. Si está listado, se crea un modulo de acuerdo con la configuración encontrada en el listado de
módulos, y se seguirá el Paso 2 para gestionar la siguiente parte de la ruta bajo el contexto de la creación de un módulos, y se seguirá el Paso 2 para gestionar la siguiente parte de la ruta bajo el contexto de la creación de un
nuevo módulo. nuevo módulo.
4. Trata el ID como si se tratara de un ID de controlador y crea un objeto controlador. Sigue el siguiente paso con la 4. Trata el ID como si se tratara de un ID de controlador y crea un objeto controlador. Sigue el siguiente paso con la parte restante de la ruta.
parte restante de la ruta. 5. El controlador busca el ID en su [[yii\base\Controller::actions()|action map]]. Si lo encuentra, crea una acción de acuerdo con la configuración encontrada en el mapa. De otra forma, el controlador intenta crear una acción en linea definida por un método de acción correspondiente al ID actual.
5. El controlador busca el ID en su [[yii\base\Controller::actions()|action map]]. Si lo encuentra, crea una acción de
acuerdo con la configuración encontrada en el mapa. De otra forma, el controlador intenta crear una acción en linea
definida por un método de acción correspondiente al ID actual.
Si ocurre algún error entre alguno de los pasos anteriores, se lanzará una excepción de tipo Si ocurre algún error entre alguno de los pasos anteriores, se lanzará una excepción de tipo
[[yii\web\NotFoundHttpException]], indicando el fallo de proceso de enrutamiento. [[yii\web\NotFoundHttpException]], indicando el fallo de proceso de enrutamiento.
...@@ -108,6 +106,7 @@ aplicación como en el siguiente ejemplo: ...@@ -108,6 +106,7 @@ aplicación como en el siguiente ejemplo:
]; ];
``` ```
### Ruta `catchAll` <a name="catchall-route"></a> ### Ruta `catchAll` <a name="catchall-route"></a>
A veces, se puede querer poner la aplicación Web en modo de mantenimiento temporalmente y mostrar la misma pagina de A veces, se puede querer poner la aplicación Web en modo de mantenimiento temporalmente y mostrar la misma pagina de
...@@ -201,6 +200,7 @@ echo Url::to('@example'); ...@@ -201,6 +200,7 @@ echo Url::to('@example');
// una URL absoluta: http://example.com/images/logo.gif // una URL absoluta: http://example.com/images/logo.gif
echo Url::to('/images/logo.gif', true);``` echo Url::to('/images/logo.gif', true);```
```
Además del método `to()`, la clase auxiliar [[yii\helpers\Url]] también proporciona algunos otros métodos de creación Además del método `to()`, la clase auxiliar [[yii\helpers\Url]] también proporciona algunos otros métodos de creación
de URLs. Por ejemplo, de URLs. Por ejemplo,
...@@ -221,6 +221,7 @@ echo Url::canonical(); ...@@ -221,6 +221,7 @@ echo Url::canonical();
echo Url::previous(); echo Url::previous();
``` ```
## Uso de URLs Amigables <a name="using-pretty-urls"></a> ## Uso de URLs Amigables <a name="using-pretty-urls"></a>
Para utilizar URLs amigables, hay que configurar el componente `ulrManager` en la configuración de la aplicación como Para utilizar URLs amigables, hay que configurar el componente `ulrManager` en la configuración de la aplicación como
...@@ -263,6 +264,7 @@ amigable. El resto de propiedades son opcionales. Sin embargo, la anterior confi ...@@ -263,6 +264,7 @@ amigable. El resto de propiedades son opcionales. Sin embargo, la anterior confi
Si se usa el servidor Web Apache, se puede utilizar la configuración recomendada descrita en la sección de Si se usa el servidor Web Apache, se puede utilizar la configuración recomendada descrita en la sección de
[Instalación](start-installation.md#recommended-apache-configuration). [Instalación](start-installation.md#recommended-apache-configuration).
### Regalas de URL <a name="url-rules"></a> ### Regalas de URL <a name="url-rules"></a>
Una regla de URL es una instancia de [[yii\web\UrlRule]] o de una clase hija. Cada URL consiste en un patrón utilizado Una regla de URL es una instancia de [[yii\web\UrlRule]] o de una clase hija. Cada URL consiste en un patrón utilizado
...@@ -314,6 +316,7 @@ se necesita a menudo cuando se quieren configurar otras propiedades de la regla ...@@ -314,6 +316,7 @@ se necesita a menudo cuando se quieren configurar otras propiedades de la regla
De forma predeterminada si no se especifica la opción `class` en la configuración de una regla, se utilizará la clase De forma predeterminada si no se especifica la opción `class` en la configuración de una regla, se utilizará la clase
predeterminada [[yii\web\UrlRule]]. predeterminada [[yii\web\UrlRule]].
### Parameters Asociativos <a name="named-parameters"></a> ### Parameters Asociativos <a name="named-parameters"></a>
Una regla de URL puede asociarse a una determinado grupo de parámetros de consulta que se hayan sido especificados en Una regla de URL puede asociarse a una determinado grupo de parámetros de consulta que se hayan sido especificados en
...@@ -365,6 +368,7 @@ Y cuando las se usen las reglas para crear URLs: ...@@ -365,6 +368,7 @@ Y cuando las se usen las reglas para crear URLs:
reglas. Hay que tener en cuenta que si no se aplica ninguna de las reglas, la URL se genera simplemente añadiendo reglas. Hay que tener en cuenta que si no se aplica ninguna de las reglas, la URL se genera simplemente añadiendo
la parte de información de la ruta y todos los parámetros como parte de la consulta. la parte de información de la ruta y todos los parámetros como parte de la consulta.
### Parametrización de Rutas <a name="parameterizing-routes"></a> ### Parametrización de Rutas <a name="parameterizing-routes"></a>
Se pueden incrustar nombres de parámetros en la ruta de una regla de URL. Esto permite a la regla de URL poder ser Se pueden incrustar nombres de parámetros en la ruta de una regla de URL. Esto permite a la regla de URL poder ser
...@@ -418,6 +422,7 @@ La regla anterior puede usarse para convertir o crear cualquiera de las siguient ...@@ -418,6 +422,7 @@ La regla anterior puede usarse para convertir o crear cualquiera de las siguient
Sin usar ningún parámetro opcional, se tendrían que crear 4 reglas para lograr el mismo resultado. Sin usar ningún parámetro opcional, se tendrían que crear 4 reglas para lograr el mismo resultado.
### Reglas con Nombres de Servidor <a name="rules-with-server-names"></a> ### Reglas con Nombres de Servidor <a name="rules-with-server-names"></a>
Es posible incluir nombres de servidores Web en los parámetros de las URLs. Esto es practico principalmente cuando una Es posible incluir nombres de servidores Web en los parámetros de las URLs. Esto es practico principalmente cuando una
...@@ -506,6 +511,7 @@ siguiente configuración contiene una regla de URL personalizada que usa el sufi ...@@ -506,6 +511,7 @@ siguiente configuración contiene una regla de URL personalizada que usa el sufi
] ]
``` ```
### Métodos HTTP <a name="http-methods"></a> ### Métodos HTTP <a name="http-methods"></a>
Cuando se implementan APIs RESTful, normalmente se necesita que ciertas URLs se conviertan en otras de acuerdo con el Cuando se implementan APIs RESTful, normalmente se necesita que ciertas URLs se conviertan en otras de acuerdo con el
...@@ -531,6 +537,7 @@ convertirá en `post/view`. ...@@ -531,6 +537,7 @@ convertirá en `post/view`.
de controladores. Para conocer más detalles, se puede visitar la sección [Enrutamiento](rest-routing.md) acerca de de controladores. Para conocer más detalles, se puede visitar la sección [Enrutamiento](rest-routing.md) acerca de
el desarrollo de APIs RESTful. el desarrollo de APIs RESTful.
### Personalización de Reglas <a name="customizing-rules"></a> ### Personalización de Reglas <a name="customizing-rules"></a>
En los anteriores ejemplos, las reglas de URL se han declarado principalmente en términos de pares de patrón-ruta. En los anteriores ejemplos, las reglas de URL se han declarado principalmente en términos de pares de patrón-ruta.
...@@ -554,6 +561,7 @@ array completo de configuración para especificar una regla. El siguiente ejempl ...@@ -554,6 +561,7 @@ array completo de configuración para especificar una regla. El siguiente ejempl
> Información: De forma predeterminada si no se especifica una opción `class` para una configuración de regla, se > Información: De forma predeterminada si no se especifica una opción `class` para una configuración de regla, se
usará la clase predeterminada [[yii\web\UrlRule]]. usará la clase predeterminada [[yii\web\UrlRule]].
### Adición de Reglas Dinámicamente <a name="adding-rules"></a> ### Adición de Reglas Dinámicamente <a name="adding-rules"></a>
Las reglas de URL se pueden añadir dinámicamente en el [[yii\web\UrlManager|URL manager]]. A menudo se necesita por Las reglas de URL se pueden añadir dinámicamente en el [[yii\web\UrlManager|URL manager]]. A menudo se necesita por
...@@ -649,4 +657,4 @@ especificas y/o las que se usen más a menudo. ...@@ -649,4 +657,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]] 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 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 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
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