Custom URL Mappings
Custom mappings sirve para especificar qué acción ejecutar para una determinada URL. Las URLs que cumplen las convensiones de Yupp están formadas por el componente, el controlador y la acción a ejecutar, un ejemplo de una URL en Yupp es: /blog/entrada/show?id=5, que para el componente "blog" y el controlador "entrada" ejecuta la acción "show" pasándole como parámetro "id=5".Entonces con un mapping se puede especificar que ante la url /blog/entrada/show?id=3 en realidad se ejecute otra acción, agregándole flexibilidad a las convensiones de Yupp para que las urls puedan ejecutar las acciones que el programador requiera.
Un ejemplo de mapping es el siguiente:
En este caso, el mapping aplica a toda URL para el componente "blog" y se aplica para cualquier controlador y acción, esto está definido por el campo "$mapping" de la clase ComponentMapping. En este caso se define que para cuando no venga en controlador y la acción en la URL, el mapping redirija automáticamente a la url "/blog/entradaBlog/list".1 <?php 2 3 class ComponentMapping { 4 5 // Para el componente blog, controlador y action son opcionales 6 public $mapping = "/blog(\/.*(\/.*)?)?/"; 7 8 public function getLogicalRoute( $field_list ) 9 { 10 return array('component' => $field_list[0], 11 'controlador' => (!isset($field_list[1])) ? 'entradaBlog' : $field_list[1], 12 'action' => (!isset($field_list[2])) ? 'list' : $field_list[2]); 13 } 14 } 15 ?>
Esta clase se define opcionalmente para cada componente, y debe estar declarada en un archivo llamado ComponentMapping.php dentro del componente. Para el caso del componente "blog", la clase debe estar ubicada en "/components/blog/ComponentMappings.php".
