Christian Torres
@chrux
http://ctorres.clov3r.net/


Introducción al Desarrollo Web con Symfony2

¿Qué es?



«Framework PHP»

MVC

Versatil

Útil

Buenas prácticas

¿Buenas prácticas?

¿Buenas prácticas?

¿Buenas prácticas?

¿Buenas prácticas?

¿Buenas prácticas?

¿Qué es?



«Framework PHP»

MVC

Versatil

Útil

Buenas prácticas

Flexible

Soporte

Bueno..., ¿y el código? XD

:D Vamos a la instalación y primeros pasos

  1. Instalación

  2. Bundle

  3. Controlador y Rutas

  4. Modelo y Doctrine

  5. Vista y Twig

Instalando Symfony2

  1. Ir a symfony.com/download
  2. Descargar (¿CON o SIN? vendors)
    vendors son libs (externas) que se utilizan en symfony

Instalando Symfony2

  1. Ir a symfony.com/download
  2. Descargar (CON vendors)
  3. Colocar la carpeta en el directorio público de apache o si tienes configurado un dominio en apache para esto asegurarse de publicar el directorio web/

Instalando Symfony2

  1. Ir a symfony.com/download
  2. Descargar (SIN vendors)
  3. Colocar la carpeta en el directorio público de apache o si tienes configurado un dominio en apache para esto asegurarse de publicar el directorio web/
  4. Abrir la terminal
  5. Instalar los vendors
                    curl -s https://getcomposer.org/installer | php # Instalando Composer
                    php composer.phar install # Instalando vendors o dependencias
                

Instalando Symfony2

Permisos (Siempre en la terminal)

chmod (probado en Mac)
                    sudo rm -rf app/cache/* app/logs/*
                    sudo chmod +a "_www allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
                    sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
                

Instalando Symfony2

Permisos (Siempre en la terminal)

setfacl (probado en CentOS)
                    sudo rm -rf app/cache/* app/logs/*
                    sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
                    sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
                

Instalando Symfony2

Permisos

en Windows ¿¿¿???
                    ...
                

R U Kidding?

I duno XD

Usando el Generador Interactivo


Vamos a la terminal

                    php app/console
                
o
                    php app/console -s
                

Bundle

Directorio que tiene una estructura bien definida y almacena todas las clases y recursos. Algunos de los directorios más usados:

                    Command/
                    Controller/
                    Resources/config/
                    Resources/public/
                    Resources/translations/
                    Resources/views/
                    Tests/
                    Entity/
                

Bundle

¿Como nombrarlos?

Vendor ( / Categoria ) / NombreBundle

Vendor: TuEmpresa, TuProyecto o TuCliente
Categoria: Opcional, casi no se usa pero por ejemplo se puede usar para identificar el sitio web
Nombre: El nombre del Bundle que es obligatorio que acabe en bundle

Bundle

  1. Abrir la terminal
                    php app/console generate:bundle # Y seguir el asistente
                

Como trabaja Symfony

Como trabaja Symfony

Como trabaja Symfony

Como trabaja Symfony

Como trabaja Symfony

Controlador

  1. Abrir la terminal
                    php app/console generate:controller # Y seguir el asistente
                

Modelo

  1. Abrir la terminal
                    php app/console generate:doctrine:entity # Y seguir el asistente
                    php app/console doctrine:schema:update # Para mandar a la BD
                

Vista

  1. Abrir el editor de código

Recursos

Documentación

Bundles