SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
Backend
Javier Eguiluz


     Jornadas Symfony2 Galicia
     25-26 noviembre 2011        #sf2Vigo
me presento
 •   Javier Eguiluz
 •   formador en Symfony2 y
     nuevas tecnologías
creador de http://symfony.es
apasionado de Symfony
           http://connect.sensiolabs.com/
                 profile/javier.eguiluz
objetivos de la sesión
 •   Seguridad
     • Symfony2
     • entidades + Doctrine2

 •   Admin generator
     • manual
     • Symfony2

     • SonataAdminBundle
http://github.com/javiereguiluz/Cupon
Seguridad
autenticación
      ¿Quién eres?

   autorización
¿Eres del nivel requerido?
autenticación   autorización




usuario                                  aplicación
autenticación   autorización




usuario                                  aplicación
firewall   access control




usuario                               aplicación
protegiendo
 el backend
security:

    firewalls:
        backend:
            pattern:   ^/backend
security:

    firewalls:
        backend:
            pattern:    ^/backend
            http_basic: ~
security:

    firewalls:
        backend:
            pattern:    ^/backend
            http_basic: ~

    access_control:
        - { path: '^/backend', role: 'ROLE_ADMIN' }
security:

    firewalls:
        backend:
            pattern:    ^/backend
            http_basic: ~

    access_control:
        - { path: '^/backend', role: 'ROLE_ADMIN' }

    providers:
        administradores:
security:

    firewalls:
        backend:
            pattern:    ^/backend
            http_basic: ~

    access_control:
        - { path: '^/backend', role: 'ROLE_ADMIN' }

    providers:
        administradores:
            users:
                admin: { password: 1234,
                         roles: ['ROLE_ADMIN'] }
security:

    firewalls:
        backend:
            pattern:    ^/backend
            http_basic: ~

    access_control:
        - { path: '^/backend', role: 'ROLE_ADMIN' }

    providers:
        administradores:
            users:
                admin: { password: 1234,
                         roles: ['ROLE_ADMIN'] }

    encoders:
        SymfonyComponentSecurityCoreUserUser:
        plaintext
demo
protegiendo el backend
protegiendo
 el frontend
1. Configurar firewall y control de
   accceso
1. Configurar firewall y control de
   accceso
2. Configurar proveedor de usuarios y
   asociarlo con la entidad
1. Configurar firewall y control de
   accceso
2. Configurar proveedor de usuarios y
   asociarlo con la entidad
3. Añadir rutas /login, /login_check
   y /logout
1. Configurar firewall y control de
   accceso
2. Configurar proveedor de usuarios y
   asociarlo con la entidad
3. Añadir rutas /login, /login_check
   y /logout
4. Crear acción y formulario de login
demo
protegiendo el frontend
admin
generator
1. Todo a mano

2. Generador de Symfony2

3. Admin generator de terceros
planificación
Ciudad   Tienda    Backend
Bundle   Bundle     Bundle

Oferta   Usuario
Bundle   Bundle
Ciudad   Backend   Tienda    Backend
Bundle             Bundle

Oferta   Backend
                   Usuario   Backend
Bundle             Bundle
a mano
demo
admin generator a mano
! Flexibilidad total
" Mucho esfuerzo
" Código repetido
ÚTIL PARA   Micro!proyectos
generador de código
      de Symfony2
$ php app/console
  generate:doctrine:crud
  --entity=OfertaBundle:Oferta
  --route-prefix=backend/oferta
  --with-write
  --format=yml
  --no-interaction
1. Crea el controlador
   OfertaBundle/Controller/OfertaController.php
1. Crea el controlador
   OfertaBundle/Controller/OfertaController.php
2. Crea el formulario
   OfertaBundle/Form/OfertaType.php
1. Crea el controlador
   OfertaBundle/Controller/OfertaController.php
2. Crea el formulario
   OfertaBundle/Form/OfertaType.php
3. Crea las plantillas index, new, edit y show en
   OfertaBundle/Resources/views/Oferta/
1. Crea el controlador
   OfertaBundle/Controller/OfertaController.php
2. Crea el formulario
   OfertaBundle/Form/OfertaType.php
3. Crea las plantillas index, new, edit y show en
   OfertaBundle/Resources/views/Oferta/
4. Crea el archivo oferta.yml en
   OfertaBundle/Resources/config/routing/
1. Crea el controlador
   OfertaBundle/Controller/OfertaController.php
2. Crea el formulario
   OfertaBundle/Form/OfertaType.php
3. Crea las plantillas index, new, edit y show en
   OfertaBundle/Resources/views/Oferta/
4. Crea el archivo oferta.yml en
   OfertaBundle/Resources/config/routing/
5. Importa el archivo oferta.yml desde el archivo
   OfertaBundle/Resources/config/routing.yml
demo
generador de código de Symfony2
! Flexibilidad (casi) total
! CRUD completo
" Está sin terminar
ÚTIL PARA   Prototipar, punto de partida
Sonata
Admin
Bundle
Thomas Rabaix   ekino.com
http://sonata!project.org
actualizar archivo deps
[SonatajQueryBundle]
  git=http://github.com/sonata-project/SonatajQueryBundle.git
  target=/bundles/Sonata/jQueryBundle

[SonataAdminBundle]
  git=http://github.com/sonata-project/SonataAdminBundle.git
  target=/bundles/Sonata/AdminBundle

[MenuBundle]
  git=http://github.com/knplabs/KnpMenuBundle.git
  target=/bundles/Knp/Bundle/MenuBundle

[KnpMenu]
  git=https://github.com/knplabs/KnpMenu.git
  target=/knp/menu

[SonataDoctrineORMAdminBundle]
  git=http://github.com/sonata-project/SonataDoctrineORMAdminBundle.git
  target=/bundles/Sonata/DoctrineORMAdminBundle
actualizar archivo deps
[SonatajQueryBundle]
  git=http://github.com/sonata-project/SonatajQueryBundle.git
  target=/bundles/Sonata/jQueryBundle

[SonataAdminBundle]
  git=http://github.com/sonata-project/SonataAdminBundle.git
  target=/bundles/Sonata/AdminBundle

[MenuBundle]
  git=http://github.com/knplabs/KnpMenuBundle.git
  target=/bundles/Knp/Bundle/MenuBundle

[KnpMenu]
  git=https://github.com/knplabs/KnpMenu.git
  target=/knp/menu

[SonataDoctrineORMAdminBundle]
  git=http://github.com/sonata-project/SonataDoctrineORMAdminBundle.git
  target=/bundles/Sonata/DoctrineORMAdminBundle
actualizar vendors



$ php bin/vendors install
registrar los nuevos namespaces
// app/autoload.php

$loader = new UniversalClassLoader();
$loader->registerNamespaces(array(
  'Symfony' => array(__DIR__.'/../vendor/symfony/src',
                     __DIR__.'/../vendor/bundles'),
  'Sensio' => __DIR__.'/../vendor/bundles',

  // ...

  'Sonata' => __DIR__.'/../vendor/bundles',
  'Knp'    => array(__DIR__.'/../vendor/bundles',
                    __DIR__.'/../vendor/knp/menu/src')
));
activar los nuevos bundles
// app/AppKernel.php

class AppKernel extends Kernel
{
  public function registerBundles()
  {
    $bundles = array(
      new SymfonyBundleFrameworkBundleFrameworkBundle(),
      new SymfonyBundleSecurityBundleSecurityBundle(),
      new SymfonyBundleTwigBundleTwigBundle(),

      // ...

      new   SonatajQueryBundleSonatajQueryBundle(),
      new   SonataAdminBundleSonataAdminBundle(),
      new   SonataDoctrineORMAdminBundleSonataDoctrineORMAdminBundle(),
      new   KnpBundleMenuBundleKnpMenuBundle(),
    );
definir las nuevas rutas

# app/config/routing.yml

sonata:
    resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml'
    prefix: /admin

_sonata_admin:
    resource: .
    type: sonata_admin
    prefix: /admin
/app_dev.php/admin/dashboard
demo
Sonata Admin Bundle
! Completo y fácil de usar
! Integración con otros bundles
" Es oficioso, no oficial
ÚTIL PARA   admin generator
muchas
gracias
dudas
preguntas
comentarios
contacta
javier.eguiluz@gmail.com

conecta
linkedin.com/in/javiereguiluz
copyright
Los contenidos de esta
presentación son propiedad
de su autor. No se pueden
reutilizar sin el consentimiento
expreso de su autor.

Más contenido relacionado

La actualidad más candente

Desarrollo código mantenible en WordPress utilizando Symfony
Desarrollo código mantenible en WordPress utilizando SymfonyDesarrollo código mantenible en WordPress utilizando Symfony
Desarrollo código mantenible en WordPress utilizando SymfonyAsier Marqués
 
Symfony2, Jornadas Symfony
Symfony2, Jornadas SymfonySymfony2, Jornadas Symfony
Symfony2, Jornadas SymfonyJavier Eguiluz
 
Slides components en
Slides components enSlides components en
Slides components enJavier López
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPDaniel Primo
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Asier Marqués
 
WordCamp Cantabria - Código mantenible con WordPress
WordCamp Cantabria  - Código mantenible con WordPressWordCamp Cantabria  - Código mantenible con WordPress
WordCamp Cantabria - Código mantenible con WordPressAsier Marqués
 
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...betabeers
 
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
Integrando React.js en aplicaciones Symfony (deSymfony 2016)Integrando React.js en aplicaciones Symfony (deSymfony 2016)
Integrando React.js en aplicaciones Symfony (deSymfony 2016)Ignacio Martín
 
Curso Javascript profesionales
Curso Javascript profesionalesCurso Javascript profesionales
Curso Javascript profesionalesRedradix
 
Curso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en DrupalCurso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en DrupalMediaglobe Innova
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Raul Fraile
 
Api De Google Calendar
Api De Google CalendarApi De Google Calendar
Api De Google Calendarjvelizster
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
jQuery 1.3 Eghost Julio2009
jQuery 1.3 Eghost Julio2009jQuery 1.3 Eghost Julio2009
jQuery 1.3 Eghost Julio2009Irontec
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Wp config.php
Wp config.phpWp config.php
Wp config.phpgregozz
 

La actualidad más candente (20)

Cómo domar SonataAdminBundle
Cómo domar SonataAdminBundleCómo domar SonataAdminBundle
Cómo domar SonataAdminBundle
 
Desarrollo código mantenible en WordPress utilizando Symfony
Desarrollo código mantenible en WordPress utilizando SymfonyDesarrollo código mantenible en WordPress utilizando Symfony
Desarrollo código mantenible en WordPress utilizando Symfony
 
Symfony2, Jornadas Symfony
Symfony2, Jornadas SymfonySymfony2, Jornadas Symfony
Symfony2, Jornadas Symfony
 
Slides components en
Slides components enSlides components en
Slides components en
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.
 
WordCamp Cantabria - Código mantenible con WordPress
WordCamp Cantabria  - Código mantenible con WordPressWordCamp Cantabria  - Código mantenible con WordPress
WordCamp Cantabria - Código mantenible con WordPress
 
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
 
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
Integrando React.js en aplicaciones Symfony (deSymfony 2016)Integrando React.js en aplicaciones Symfony (deSymfony 2016)
Integrando React.js en aplicaciones Symfony (deSymfony 2016)
 
Curso Javascript profesionales
Curso Javascript profesionalesCurso Javascript profesionales
Curso Javascript profesionales
 
Código Bonito con PHP
Código Bonito con PHPCódigo Bonito con PHP
Código Bonito con PHP
 
Curso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en DrupalCurso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en Drupal
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain
 
Api De Google Calendar
Api De Google CalendarApi De Google Calendar
Api De Google Calendar
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Profesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTBProfesora Asociada Facultad de Ingeniería UTB
Profesora Asociada Facultad de Ingeniería UTB
 
jQuery 1.3 Eghost Julio2009
jQuery 1.3 Eghost Julio2009jQuery 1.3 Eghost Julio2009
jQuery 1.3 Eghost Julio2009
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Wp config.php
Wp config.phpWp config.php
Wp config.php
 

Similar a Backend (sf2Vigo)

Clase 13 seguridad
Clase 13   seguridad Clase 13   seguridad
Clase 13 seguridad hydras_cs
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2Mario IC
 
Clase 5 controller
Clase 5 controllerClase 5 controller
Clase 5 controllerhydras_cs
 
Materiales del curso de Symfony2
Materiales del curso de Symfony2Materiales del curso de Symfony2
Materiales del curso de Symfony2Raul Fraile
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Ricard Luquero
 
Clase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasosClase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasoshydras_cs
 
Conferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingConferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingHacking Bolivia
 
Introducción al framework Symfony
Introducción al framework SymfonyIntroducción al framework Symfony
Introducción al framework SymfonyAlejandro Hernández
 
Webutil 090812113116-phpapp01
Webutil 090812113116-phpapp01Webutil 090812113116-phpapp01
Webutil 090812113116-phpapp01emonsalve
 
Cómo explotar EternalBlue en Windows Server 2012 R2
Cómo explotar EternalBlue en Windows Server 2012 R2Cómo explotar EternalBlue en Windows Server 2012 R2
Cómo explotar EternalBlue en Windows Server 2012 R2Telefónica
 
Por qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápidoPor qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápidoCarlos Granados
 
Crear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroCrear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroEduardo Turiño
 

Similar a Backend (sf2Vigo) (20)

Symfony Parte 2
Symfony Parte 2Symfony Parte 2
Symfony Parte 2
 
CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
Clase 13 seguridad
Clase 13   seguridad Clase 13   seguridad
Clase 13 seguridad
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
Clase 5 controller
Clase 5 controllerClase 5 controller
Clase 5 controller
 
Materiales del curso de Symfony2
Materiales del curso de Symfony2Materiales del curso de Symfony2
Materiales del curso de Symfony2
 
Sf2 pr5 mi primer proyecto
Sf2 pr5 mi primer proyectoSf2 pr5 mi primer proyecto
Sf2 pr5 mi primer proyecto
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Clase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasosClase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasos
 
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
Conferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingConferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical Hacking
 
Introducción al framework Symfony
Introducción al framework SymfonyIntroducción al framework Symfony
Introducción al framework Symfony
 
Webutil
WebutilWebutil
Webutil
 
Webutil
WebutilWebutil
Webutil
 
Webutil 090812113116-phpapp01
Webutil 090812113116-phpapp01Webutil 090812113116-phpapp01
Webutil 090812113116-phpapp01
 
Cómo explotar EternalBlue en Windows Server 2012 R2
Cómo explotar EternalBlue en Windows Server 2012 R2Cómo explotar EternalBlue en Windows Server 2012 R2
Cómo explotar EternalBlue en Windows Server 2012 R2
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Por qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápidoPor qué Symfony2 es tan rápido
Por qué Symfony2 es tan rápido
 
Crear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroCrear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde Cero
 
Java Rmi
Java RmiJava Rmi
Java Rmi
 

Más de Javier Eguiluz

deSymfony 2017: Symfony 4, Symfony Flex y el futuro de Symfony
deSymfony 2017: Symfony 4, Symfony Flex y el futuro de SymfonydeSymfony 2017: Symfony 4, Symfony Flex y el futuro de Symfony
deSymfony 2017: Symfony 4, Symfony Flex y el futuro de SymfonyJavier Eguiluz
 
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)Javier Eguiluz
 
Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)Javier Eguiluz
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricksJavier Eguiluz
 
Twig, los mejores trucos y técnicas avanzadas
Twig, los mejores trucos y técnicas avanzadasTwig, los mejores trucos y técnicas avanzadas
Twig, los mejores trucos y técnicas avanzadasJavier Eguiluz
 
Desymfony 2012 - Concurso de diseño
Desymfony 2012 - Concurso de diseñoDesymfony 2012 - Concurso de diseño
Desymfony 2012 - Concurso de diseñoJavier Eguiluz
 
Curso Symfony - Anexos
Curso Symfony - AnexosCurso Symfony - Anexos
Curso Symfony - AnexosJavier Eguiluz
 
Curso Symfony - Clase 5
Curso Symfony - Clase 5Curso Symfony - Clase 5
Curso Symfony - Clase 5Javier Eguiluz
 
Curso Symfony - Clase 4
Curso Symfony - Clase 4Curso Symfony - Clase 4
Curso Symfony - Clase 4Javier Eguiluz
 
Curso Symfony - Clase 3
Curso Symfony - Clase 3Curso Symfony - Clase 3
Curso Symfony - Clase 3Javier Eguiluz
 
Curso Symfony - Clase 2
Curso Symfony - Clase 2Curso Symfony - Clase 2
Curso Symfony - Clase 2Javier Eguiluz
 
Curso Symfony - Clase 1
Curso Symfony - Clase 1Curso Symfony - Clase 1
Curso Symfony - Clase 1Javier Eguiluz
 

Más de Javier Eguiluz (15)

deSymfony 2017: Symfony 4, Symfony Flex y el futuro de Symfony
deSymfony 2017: Symfony 4, Symfony Flex y el futuro de SymfonydeSymfony 2017: Symfony 4, Symfony Flex y el futuro de Symfony
deSymfony 2017: Symfony 4, Symfony Flex y el futuro de Symfony
 
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
 
Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricks
 
Silex al límite
Silex al límiteSilex al límite
Silex al límite
 
Twig tips and tricks
Twig tips and tricksTwig tips and tricks
Twig tips and tricks
 
Twig, los mejores trucos y técnicas avanzadas
Twig, los mejores trucos y técnicas avanzadasTwig, los mejores trucos y técnicas avanzadas
Twig, los mejores trucos y técnicas avanzadas
 
Wallpaper Notifier
Wallpaper NotifierWallpaper Notifier
Wallpaper Notifier
 
Desymfony 2012 - Concurso de diseño
Desymfony 2012 - Concurso de diseñoDesymfony 2012 - Concurso de diseño
Desymfony 2012 - Concurso de diseño
 
Curso Symfony - Anexos
Curso Symfony - AnexosCurso Symfony - Anexos
Curso Symfony - Anexos
 
Curso Symfony - Clase 5
Curso Symfony - Clase 5Curso Symfony - Clase 5
Curso Symfony - Clase 5
 
Curso Symfony - Clase 4
Curso Symfony - Clase 4Curso Symfony - Clase 4
Curso Symfony - Clase 4
 
Curso Symfony - Clase 3
Curso Symfony - Clase 3Curso Symfony - Clase 3
Curso Symfony - Clase 3
 
Curso Symfony - Clase 2
Curso Symfony - Clase 2Curso Symfony - Clase 2
Curso Symfony - Clase 2
 
Curso Symfony - Clase 1
Curso Symfony - Clase 1Curso Symfony - Clase 1
Curso Symfony - Clase 1
 

Último

AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 

Último (20)

AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 

Backend (sf2Vigo)

  • 1. Backend Javier Eguiluz Jornadas Symfony2 Galicia 25-26 noviembre 2011 #sf2Vigo
  • 2. me presento • Javier Eguiluz • formador en Symfony2 y nuevas tecnologías
  • 4. apasionado de Symfony http://connect.sensiolabs.com/ profile/javier.eguiluz
  • 5. objetivos de la sesión • Seguridad • Symfony2 • entidades + Doctrine2 • Admin generator • manual • Symfony2 • SonataAdminBundle
  • 8. autenticación ¿Quién eres? autorización ¿Eres del nivel requerido?
  • 9. autenticación autorización usuario aplicación
  • 10. autenticación autorización usuario aplicación
  • 11. firewall access control usuario aplicación
  • 13. security: firewalls: backend: pattern: ^/backend
  • 14. security: firewalls: backend: pattern: ^/backend http_basic: ~
  • 15. security: firewalls: backend: pattern: ^/backend http_basic: ~ access_control: - { path: '^/backend', role: 'ROLE_ADMIN' }
  • 16. security: firewalls: backend: pattern: ^/backend http_basic: ~ access_control: - { path: '^/backend', role: 'ROLE_ADMIN' } providers: administradores:
  • 17. security: firewalls: backend: pattern: ^/backend http_basic: ~ access_control: - { path: '^/backend', role: 'ROLE_ADMIN' } providers: administradores: users: admin: { password: 1234, roles: ['ROLE_ADMIN'] }
  • 18. security: firewalls: backend: pattern: ^/backend http_basic: ~ access_control: - { path: '^/backend', role: 'ROLE_ADMIN' } providers: administradores: users: admin: { password: 1234, roles: ['ROLE_ADMIN'] } encoders: SymfonyComponentSecurityCoreUserUser: plaintext
  • 21.
  • 22. 1. Configurar firewall y control de accceso
  • 23. 1. Configurar firewall y control de accceso 2. Configurar proveedor de usuarios y asociarlo con la entidad
  • 24. 1. Configurar firewall y control de accceso 2. Configurar proveedor de usuarios y asociarlo con la entidad 3. Añadir rutas /login, /login_check y /logout
  • 25. 1. Configurar firewall y control de accceso 2. Configurar proveedor de usuarios y asociarlo con la entidad 3. Añadir rutas /login, /login_check y /logout 4. Crear acción y formulario de login
  • 28. 1. Todo a mano 2. Generador de Symfony2 3. Admin generator de terceros
  • 30. Ciudad Tienda Backend Bundle Bundle Bundle Oferta Usuario Bundle Bundle
  • 31. Ciudad Backend Tienda Backend Bundle Bundle Oferta Backend Usuario Backend Bundle Bundle
  • 34. ! Flexibilidad total " Mucho esfuerzo " Código repetido ÚTIL PARA Micro!proyectos
  • 35. generador de código de Symfony2
  • 36. $ php app/console generate:doctrine:crud --entity=OfertaBundle:Oferta --route-prefix=backend/oferta --with-write --format=yml --no-interaction
  • 37. 1. Crea el controlador OfertaBundle/Controller/OfertaController.php
  • 38. 1. Crea el controlador OfertaBundle/Controller/OfertaController.php 2. Crea el formulario OfertaBundle/Form/OfertaType.php
  • 39. 1. Crea el controlador OfertaBundle/Controller/OfertaController.php 2. Crea el formulario OfertaBundle/Form/OfertaType.php 3. Crea las plantillas index, new, edit y show en OfertaBundle/Resources/views/Oferta/
  • 40. 1. Crea el controlador OfertaBundle/Controller/OfertaController.php 2. Crea el formulario OfertaBundle/Form/OfertaType.php 3. Crea las plantillas index, new, edit y show en OfertaBundle/Resources/views/Oferta/ 4. Crea el archivo oferta.yml en OfertaBundle/Resources/config/routing/
  • 41. 1. Crea el controlador OfertaBundle/Controller/OfertaController.php 2. Crea el formulario OfertaBundle/Form/OfertaType.php 3. Crea las plantillas index, new, edit y show en OfertaBundle/Resources/views/Oferta/ 4. Crea el archivo oferta.yml en OfertaBundle/Resources/config/routing/ 5. Importa el archivo oferta.yml desde el archivo OfertaBundle/Resources/config/routing.yml
  • 43. ! Flexibilidad (casi) total ! CRUD completo " Está sin terminar ÚTIL PARA Prototipar, punto de partida
  • 45. Thomas Rabaix ekino.com
  • 47. actualizar archivo deps [SonatajQueryBundle] git=http://github.com/sonata-project/SonatajQueryBundle.git  target=/bundles/Sonata/jQueryBundle [SonataAdminBundle]  git=http://github.com/sonata-project/SonataAdminBundle.git  target=/bundles/Sonata/AdminBundle [MenuBundle]  git=http://github.com/knplabs/KnpMenuBundle.git  target=/bundles/Knp/Bundle/MenuBundle [KnpMenu]  git=https://github.com/knplabs/KnpMenu.git  target=/knp/menu [SonataDoctrineORMAdminBundle]  git=http://github.com/sonata-project/SonataDoctrineORMAdminBundle.git  target=/bundles/Sonata/DoctrineORMAdminBundle
  • 48. actualizar archivo deps [SonatajQueryBundle] git=http://github.com/sonata-project/SonatajQueryBundle.git  target=/bundles/Sonata/jQueryBundle [SonataAdminBundle]  git=http://github.com/sonata-project/SonataAdminBundle.git  target=/bundles/Sonata/AdminBundle [MenuBundle]  git=http://github.com/knplabs/KnpMenuBundle.git  target=/bundles/Knp/Bundle/MenuBundle [KnpMenu]  git=https://github.com/knplabs/KnpMenu.git  target=/knp/menu [SonataDoctrineORMAdminBundle]  git=http://github.com/sonata-project/SonataDoctrineORMAdminBundle.git  target=/bundles/Sonata/DoctrineORMAdminBundle
  • 49. actualizar vendors $ php bin/vendors install
  • 50. registrar los nuevos namespaces // app/autoload.php $loader = new UniversalClassLoader(); $loader->registerNamespaces(array( 'Symfony' => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/bundles'), 'Sensio' => __DIR__.'/../vendor/bundles', // ... 'Sonata' => __DIR__.'/../vendor/bundles', 'Knp' => array(__DIR__.'/../vendor/bundles', __DIR__.'/../vendor/knp/menu/src') ));
  • 51. activar los nuevos bundles // app/AppKernel.php class AppKernel extends Kernel { public function registerBundles() { $bundles = array( new SymfonyBundleFrameworkBundleFrameworkBundle(), new SymfonyBundleSecurityBundleSecurityBundle(), new SymfonyBundleTwigBundleTwigBundle(), // ... new SonatajQueryBundleSonatajQueryBundle(), new SonataAdminBundleSonataAdminBundle(), new SonataDoctrineORMAdminBundleSonataDoctrineORMAdminBundle(), new KnpBundleMenuBundleKnpMenuBundle(), );
  • 52. definir las nuevas rutas # app/config/routing.yml sonata: resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml' prefix: /admin _sonata_admin: resource: . type: sonata_admin prefix: /admin
  • 55. ! Completo y fácil de usar ! Integración con otros bundles " Es oficioso, no oficial ÚTIL PARA admin generator
  • 59. copyright Los contenidos de esta presentación son propiedad de su autor. No se pueden reutilizar sin el consentimiento expreso de su autor.