Se creará un bundle para cada función desacoplada del sistema para esto se comenzará con un bundle llamado MainBundle en el que irán todos los atributos comunes el sistema, luego se agregarán BlogBundle, ShoppingBundle, etc. que le darán funciones extendidas al sistema.
Para crear el primer bundle se ejecuta el comando:
php app/console generate:bundle
el cuál ejecuta una consola interactiva para la creación de bundles e iremos respondiendo una a una las preguntas:
Bundle namespace: Petramas/MainBundle Bundle name [PetramasMainBundle]: Target directory [/home/joerobles/NetBeansProjects/petramas/src]: Configuration format (yml, xml, php, or annotation): annotation Do you want to generate the whole directory structure [no]? yes Do you confirm generation [yes]? Confirm automatic update of your Kernel [yes]? Confirm automatic update of the Routing [yes]?
ya se puede acceder al bundle creado en la ruta:
http://local.petramas.com/app_dev.php/hello/Joe
y mostrará como contenido:
Hello Joe!
hemos creado las bases, el esqueleto de todo nuestro proyecto ahora toca modificar lo ya creado para darle la funcionalidad adecuada.
Para modificar la ruta de acceso a este controlador se modificará la ruta por la que se accede:
nano src/Petramas/MainBundle/Controller/DefaultController.php <?php namespace Petramas\MainBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; class DefaultController extends Controller { /** * @Route("/hello/{name}") * @Template() */ public function indexAction($name) { return array('name' => $name); } }
La ruta se cambia modificando las anotaciones y se elimina la variable a pasar al controlador:
nano src/Petramas/MainBundle/Controller/DefaultController.php <?php namespace Petramas\MainBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; class DefaultController extends Controller { /** * @Route("/") * @Template() */ public function indexAction() { return array(); } }
y se hace lo propio en la plantilla twig:
nano src/Petramas/MainBundle/Resources/views/Default/index.html.twig Hello {{ name }}!
eliminando la variable pasada por el controlador name:
nano src/Petramas/MainBundle/Resources/views/Default/index.html.twig Hello!
Y ya tenemos nuestra primera página limpia.
No hay comentarios.:
Publicar un comentario
Puedes comentar como te gustaría que comenten de ti.