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

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...solanocortezluisalfr
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 

Último (14)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 

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.