En este tutorial vamos a explicar los pasos que hay que seguir para crear un nuevo plugin en CakePHP y cómo se debe configurar la aplicación para que el nuevo plugin de CakePHP sea detectado y se pueda utilizar.
Durante el tutorial vamos a realizar un ejemplo que lo que va a conseguir es que se muestre en la pantalla un mensaje que se le pase por la url al controlador.
Pasos para la creación de un nuevo plugin en CakePHP
1.- Estructura de carpetas del nuevo plugin
Para crear un nuevo plugin deberemos ir a la carpeta ‘Plugin‘ que está situado en ‘~/app/Plugin‘ en el raíz de instalación de nuestra aplicación CakePHP y crear ahí la carpeta del nuevo plugin. En este ejemplo vamos a crear un plugin llamado ‘Saludos‘, por lo que la estructura de carpetas tras crear la del plugin sería la siguiente:
01 /app02 /Config03 /Console04 /Controller05 /Lib06 /Locale07 /Model08 /Plugin09 /Saludos10 ...11
Una vez que hemos creado la carpeta raíz del nuevo plugin deberemos crear las carpetas para los diferentes elementos que vamos a utlizar:
1 /Saludos2 /Config3 /Controller4 /Model5 /View6 /webroot7 ...8
En estas carpetas iremos creando los controladores del nuevo plugin, las páginas que renderizan las vistas, las clases para interactuar con los modelos de base de datos…
2.- Creación de un controlador dentro del nuevo plugin
Tras crear la estructura de carpetas vamos a pasar a crear nuestro primer controlador del nuevo plugin. Para ello crear el fichero ‘SaludarController‘ dento de la carpeta ‘~/app/Plugin/Saludos/Controller/‘:
1 class SaludarController extends AppController {2 3 function saludoInicial($texto){4 $this->set('texto',$texto);5 }
6 7 }
En el controlador se crear un único método que lo que hará será enviar a la vista el valor del texto recibido en la llamada al controlador para ser mostrado en la pantalla.
3.- Crear fichero de la vista para el nuevo método del controlador
Debemos crear el fichero ‘~/app/Plugin/Saludos/View/saludo_inicial.ctp‘ con el siguiente contenido:
1 <?= 'Bienvenido: '.$texto ?>
Esta vista lo único que hará será mostrar por pantalla el nombre que le llega por parámetro en la llamada del método ‘SaludoInicial‘ del controlador.
4.- Configurar la precarga del plugin en el fichero bootstrap
Para que CakePHP detecte el nuevo Plugin deberemos añadir una nueva línea en el fichero ‘~/app/Config/bootstrap.php‘ indicándole a CakePHP que debe cargar el plugin con el nombre ‘Saludos‘:
1 CakePlugin::load('Saludos');
Con estos cuatro pasos ya habremos creado el nuevo plugin de CakePHP y este sería accesible a través de la url:
1 http://developando.com/saludos/saludar/saludoInicial/David
En la url se pueden distinguir:
- Direción del sitio web – http://developando.com/
- Nommbre del plugin – saludos
- Nombre del controlador – saludar
- Nombre de la acción – saludoInicial
- Parámetro con el texto a mostrar – David
CakePHP permite configurar rutas o ‘routes’ para que esta url ‘tan fea‘ pueda tener el formato que queramos.
5.- Configurar el fichero de routes
5.1- Crear el fichero de routes
Para configurar las ‘url amigables‘ del plugin CakePHP debemos crear el fichero ‘~/app/Plugin/Saludos/Config/routes.php‘ indicando las rutas con las que debe trabajar CakePHP.
Por ejemplo, si añadimos la siguiente línea:
1 <?php
2 // Rutas para las acciones del controlador
3 Router::connect('/saludoInicial/*', array('plugin' => 'saludos', 'controller' => 'saludar', 'action' => 'saludoInicial'));
En esta línea dentro del fichero ‘routes‘ se indica a CakePHP que todas la peticiones que lleven a ‘saludoInicial’ se deben tratar con:
- Plugin: ‘Saludos‘
- Contolador: ‘Saludar‘
- Acción: ‘SaludoInicial‘
5.2- Editar configuración del fichero bootstrap
Una vez creado este fichero de rutas debemos indicar a CakePHP la existencia del mismo. Para ello editaremos de nuevo el fichero ‘~/app/Config/bootstrap.php‘ del paso anterior añadiendo a la línea que habíamos puesto para cargar el plugin un nuevo parámetro indicando que utilice el fichero de ‘routes‘ creado dentro del nuevo plugin.
La línea debe quedar de esta forma ahora:
1 CakePlugin::load(array('Saludos' => array('routes' => true)));
Con estos dos últimos pasos hemos conseguido que ahora el método creado en el controlador del nuevo plugin sea accesible a través de una url más amigable como la siguiente:
1 http://developando.com/saludoInicial/David
Con estos pasos serás capáz de crear un nuevo plugin y empezar a trabajar con él. En este tutorial hemos creado un sencillo ejemplo, ahora puedes ‘complicar’ el nuevo plugin añadiendo más controladores, modelos de datos, vistas y elementos….
Si este tutorial te ha resultadao de utilidad, o tienes algún problema o duda, por favor deja tus comentarios.
Deja tu comentario