Mostrar un formulario para cada registro de una entidad en la misma vista con Symfony2

Antes de comenzar vamos a recordar los pasos a seguir para crear un formulario, para ello lo he dividido en 2 partes:

Creación del formulario en el controlador antes de recibir la petición [Request].

  1. Instanciamos nuestra entidad o modelo
  2. Llamamos al método $this->createFormBuilder() en caso de querer crear el formulario en el controlador o al método $this->createForm() para utilizar un formulario tipo ya creado.
  3. Enviamos a la vista el formulario llamando al método createView()
    /**
     * @Route("/crear-equipo", name="crearEquipo")
     */
    public function crearEquipoAction()
    {
        $equipo =  new Equipo(); //1-Instancio la entidad

        $form = $this->createForm(new EquipoType(), $equipo); //Utilizo el formulario tipo y le paso el objeto Equipo.

        return $this->render('default/crear.html.twig', array(
            'form' => $form->createView() //Enviamos a la vista el formulario llamando al método
        ));
    }

Continuar leyendo “Mostrar un formulario para cada registro de una entidad en la misma vista con Symfony2”

Interface Segregation Principle

Interface Segregation Principle (Principio de Segregación de Interfaces o ISP) es el cuarto de la serie de los principios SOLID.

Este principio fue utilizado por primera vez por Robert C. Martin durante unas sesiones de consultoría en Xerox.

ISP indica que las subclases no deben ser forzadas a depender de métodos que no utilizan. Tiene la intención de solucionar el problema de las interfaces “pesadas” que definen muchos métodos para su implementación.

A continuación vamos a utilizar un ejemplo que infringe este principio y vamos a solucionarlo.
Continuar leyendo “Interface Segregation Principle”

The Liskov Substitution Principle

The Liskov Subsitution Principle (Principio de Substitución Liskov  o LSP), corresponde al tercer principio SOLID y dice que cada clase que extienda de otra debería ser intercambiable sin afectar al comportamiento del programa.

Este principio tiene 2 partes fundamentales: las clases base y las clases heredadas o subclases, nos ayuda a resolver el diseño que deben tener nuestras jerarquías (clases abstractas, herencia e interfaces).
Continuar leyendo “The Liskov Substitution Principle”

Ocultando campos del formulario mediante eventos con Symfony2

Tenemos un formulario de la entidad Task con 2 propiedades (name y description) y necesitamos que al editarlo, no muestre un determinado campo, en este caso el campo name que almacenará el nombre de la tarea.

Formulario sin ocultar campos al editarlo
Formulario sin ocultar campos al editarlo

Continuar leyendo “Ocultando campos del formulario mediante eventos con Symfony2”