He aquí una operación típica para romper un string en dos partes, sabiendo que están separadas por un carácter concreto, en este caso el socorrido "underscore".
list($part1, $part2) = explode('_', $string);
Aplicándolo a CakePHP, vamos a imaginar que tenemos el nombre de una acción y queremos saber si tiene prefijo y cuál es. Así que en algún sitio de nuestro Controller (probablemente en el beforeFilter) hacemos:
$action = $this->params['action'];
list($prefix, $actionName) = explode('_', $action);
Sencillo, ¿verdad?
Pero, ¿qué pasa si $action no tiene prefijo y por tanto no hay separador en la cadena?
Bueno, pues en ese caso, $prefix toma el valor de la cadena y $actionName queda vacío, por lo que necesitaríamos el siguiente código para controlar la situación:
$action = $this->params['action'];
list($prefix, $actionName) = explode('_', $action);
if(!$actionName) {
$actionName = $prefix;
$prefix = '';
}
No hay comentarios:
Publicar un comentario