Para crear controladores en Symfony2 tendremos que irnos al directorio Controllers de nuestro Bundle. Pongo un ejemplo a continuación.
Crearé el fichero Src/Ejemplos/PruebasBundle/Controller/PruebasController.php
<?php //Le decimos el namespace namespace Ejemplos\PruebasBundle\Controller; //Le decimos que esto es un controlador use Symfony\Bundle\FrameworkBundle\Controller\Controller; //El nombre de la clase siempre debe ser el mismo que el del fichero y extendemos a la clase Controller class PruebasController extends Controller { //Creamos métodos action . Acciones del controlador. public function indexAction() { echo "Action index"; die(); } //Recibe un parametro por la URL public function mostrarAction($param){ //Imprimimos el parametro echo $param; die(); } }
No vamos a poder entrar en ninguna acción del controlador si no definimos sus rutas en Src/Ejemplos/PruebasBundle/Resources/config/routing.yml
ejemplos_pruebas_homepage: path: /hello/{name} defaults: { _controller: EjemplosPruebasBundle:Default:index }
Para la acción index, le digo que la ruta va a ser /index y que va a utilizar el método Action del controlador Pruebas del bundle EjemplosPruebasBundle
index: path: /index defaults: { _controller: EjemplosPruebasBundle:Pruebas:index }
Lo mismo que con la ruta anterior, pero le paso un parametro por URL.
mostrar: path: /mostrar/{param} defaults: { _controller: EjemplosPruebasBundle:Pruebas:mostrar }
Ahora podemos acceder desde nuestro navegador.
Más información:
Documentación oficial de Symfony2 – Controladores