Paginación en Symfony2
Seguimos desarrollando nuestra aplicación tipo blog con Symfony2, en este caso vamos a ver como listar los posts incluyendo la paginación en Symfony2. Primero crearemos la ruta, que ya teníamos definida de antes. inicio: pattern: / defaults: { _controller: WebBlogBundle:Posts:index, page:1 } home: pattern: /inicio/{page} defaults: { _controller: WebBlogBundle:Posts:index, page:1 } Ahora crearemos un nuevo método en el repositorio de la entidad Posts que listará y paginará los posts....
Subir ficheros en Symfony2
En el post anterior hemos visto como crear el formulario de añadir posts, sin embargo no funciona la subida de la imágen. En este artículo veremos como subir ficheros en Symfony2. Es sencillo, simplemente en nuestro formulario definimos un campo tipo file y en la entidad añadimos los siguientes métodos. //SUBIDAS public function getAbsolutePath() { return null === $this->image ? null : $this->getUploadRootDir() . '/' . $this->image; } public...
Symfony2 desde 0: Añadir Posts
Si ya tenemos el login y registro con Symfony2, cuando nos identifiquemos en la parte superior derecha ya tenemos lo siguiente Ese link llevará a un controlador para añadir post. Primero crearemos el formulario que nos servirá para añadir y editar posts. Es importante prestar atención a como están configurados cada uno de los campos. <?php namespace Web\BlogBundle\Form\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; class PostsType extends AbstractType {...
Repositorios de entidades personalizados en Symfony2
Para abstraer la lógica de negocio de los controladores podemos crear repositorios de entidades personalizados, esto nos permite llevarnos todo el tema del manejo de la base de datos a una clase aislada del controlador. Esto es lo que yo llamaba en otros frameworks como modelo o modelo de consulta. Para crear un repositorio en el que añadir nuevos métodos para el modelo tenemos que crear un fichero, por...
Symfony2 desde 0: Login y registro
Ahora veremos como hacer un login y registro con Symfony2. En el post anterior definimos la plantilla en la que montamos el formulario de login. ¡OJO! Con el name de username y password en el formulario de login, es necesario que delante tengan un guión bajo. Ahora montaremos el sistema de autenticación que nos proporciona Symfony2. Definiremos las rutas que necesitaremos hasta ahora en el fichero routing.yml de nuestro...
Symfony2 desde 0: Plantilla base
Definiremos la plantilla base para nuestras vistas en el fichero app/Resources/views/plantilla.html.twig En el definiremos algunos bloques, montaremos una navbar con Bootstrap, y el formulario de login. <!DOCTYPE HTML> <html lang="es"> <head> <meta charset="utf8"/> <title>{% block title %} Blog en Symfony2 - victorroblesweb.es{% endblock %}</title> <!-- jQuery CDN --> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <!-- Bootstrap CDN --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> </head> <body> <header> <nav class="navbar navbar-default"> <div...
Symfony2 desde 0: Relaciones en Doctrine
Hemos generado las entidades automáticamente y también hemos indicado que la definición de estas estará en archivos yml. Ahora vamos a ver las relaciones en Doctrine que utilizaremos para el blog. Src/Web/BlogBundle/Resources/config/doctrine/Posts.orm.yml aquí tenemos la definición de cada campo y de las relaciones. Web\BlogBundle\Entity\Posts: type: entity table: posts indexes: fk_category_post: columns: - category_id fk_user_post: columns: - user_id id: id: type: bigint nullable: false unsigned: false id: true generator: strategy:...
Symfony2 desde 0: Crear bundle y generar entidades
Lo que realmente cuesta de pillar a la hora de programar con un framework tan potente como Symfony2 es el proceso de creación de una aplicación web con el. Eso es siempre lo que más me cuesta de entender cuando empiezo a aprender una tecnología. Pues bien voy a comenzar a publicar una serie de posts en los que desarrollaremos una aplicación web con Symfony2 desde 0 y de...
API Rest con Slim
Vamos a ver como crear un API Rest con Slim. REST, REpresentational State Transfer, es una arquitectura de desarrollo web basada en el estándar HTTP. REST nos permite crear servicios y aplicaciones que pueden ser usadas por cualquier dispositivo o cliente que entienda HTTP, por lo que es muy simple y flexible de usar. REST cuenta con muchos métodos para utilizar, en concreto los métodos disponibles en el protocolo...
Instalar Slim Framework
Slim es un micro-framework para PHP que nos ayuda a desarrollar de forma más rápida aplicaciones web y APIs. Sus principales características son las siguientes: Es muy sencillo. Sistema de rutas potente. Rutas Restful. Tiene mensajes flash. Renderizado de vistas. Veamos como instalar Slim Framework en Windows. En Linux el proceso es más sencillo si cabe. Primero que todo debemos instalar php, composer y git en nuestro sistema y...
Validar formularios en Symfony2
Un aspecto fundamental a la hora de trabajar con formularios es la validación de los datos que llegan de los mismos. Veamos como validar formularios en Symfony2. Tenemos este formulario creado. <?php namespace Pruebas\EjemploBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; use Doctrine\ORM\EntityRepository; class PostsType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('title','text',array("required"=>false, 'attr' => array('class'=>'form-control')...
Personalizar formularios en la vista en Symfony2
Personalizar formularios en la vista en Symfony2 Hoy veremos como personalizar formularios en la vista en Symfony2. Ya tenemos nuestro formulario creado y con el código necesario en el controlador. <?php namespace Pruebas\EjemploBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; class PostsType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('title','text',array("required"=>true, 'attr' => array('class'=>'form-control') )) ->add('description','textarea',array("required"=>true, 'attr'...