symfony admin generator - decharlas

56
organizan patrocinan colaboran Jornadas Symfony 5 y 6 de julio 2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony

Transcript of symfony admin generator - decharlas

Page 1: symfony admin generator - decharlas

organizan patrocinan

colaboran

Jornadas Symfony 5 y 6 de julio 2010Universitat Jaume I, Castellón

http://decharlas.uji.es/symfony

Page 2: symfony admin generator - decharlas

Admin GeneratorUn gran poder conlleva una gran responsabilidad

Javier López, flai.es

Jornadas Symfony 5 y 6 de julio 2010Universitat Jaume I, Castellón

http://decharlas.uji.es/symfony

Page 3: symfony admin generator - decharlas

http://www.flai.es

Jornadas Symfony http://decharlas.uji.es/symfony

sesión patrocinada por

Page 4: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

¿CRUD?

Muchas aplicaciones son sólo una interfaz para la BBDD

Proceso muy repetitivo y siempre igual

REATE: nuevo

ETRIEVE: listar

PDATE: actualizar

ELETE: eliminar

C

R

U

D

Page 5: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

God bless symfony

Symfony ofrece dos soluciones

CRUDGenerator

AdminGenerator

symfony doctrine:generate-module symfony doctrine:generate-admin

Page 6: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

God bless symfony

Symfony ofrece dos soluciones

CRUDGenerator

AdminGenerator

symfony doctrine:generate-module symfony doctrine:generate-admin

Killer

Fea

ture

Page 7: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

pero, ¿qué es?

Page 8: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Un ejemplo

Page 9: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Admin Generator

Admin generator =

generator.yml

Page 10: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Admin Generator

Admin generator =

generator.yml

Page 11: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Admin Generator

generator.yml

forms

filters

models

actions

partials generator

Page 12: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Cómo funciona

Page 13: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Cómo funciona/apps/backend/modules /cache/backend/dev/modules

Page 14: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Cómo funciona

xxxGeneratorConfiguration

generator.yml

sfDoctrineGenerator

generator: class: sfDoctrineGenerator param:[]

generator: config: fields: [] list: [] edit: [] ...

Page 15: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Cómo funciona

sfDoctrineGenerator

Módulo en /app/modules/xxx

Módulo en /cache/modules/autoxxx

/plugins/data/generator/sfDoctrineModule/admin

COPIADO

/SKELETON

COMPILADO

/TEMPLATE

1. se ejecuta php2. [?php ?] => <?php ?>

COPIADOSustitución ##variable##

Page 16: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Cómo funciona/SKELETON /TEMPLATE

Page 17: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Cómo funciona/SKELETON /TEMPLATE

Page 18: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Cómo funciona/SKELETON /TEMPLATE

Page 19: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Tu propio “admin-generator”

sfDoctrineGenerator

Módulo en /app/modules/xxx

Módulo en /cache/modules/autoxxx

/lib/data/generator/sfDoctrineModule/mitema

COPIADO

/SKELETON

COMPILADO

/TEMPLATE

1. se ejecuta php2. [?php ?] => <?php ?>

COPIADOSustitución ##variable##

generator: param: theme: mitema

Page 20: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Las accionesEl listadoLa edición

Page 21: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

indexSuccess.php

Page 22: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

indexSuccess.php

_list_header

Page 23: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

indexSuccess.php

_flashes

Page 24: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

indexSuccess.php

_filters

Page 25: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

indexSuccess.php

_list batch actions

Page 26: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

indexSuccess.php

_list actions

Page 27: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

indexSuccess.php

_list actions

Page 28: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

indexSuccess.php

_list

Page 29: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

indexSuccess.php

_list

Page 30: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

_list.php

_list_th_[tabular|stacked]

Page 31: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

_list.php

_list_td_[tabular|stacked]

Page 32: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

_list.php

_list_td_actions

Page 33: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la vista

_list.php

_pagination

Page 34: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la acción

actions.class.php

Page 35: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado construyendo la query

$query

sf_user/admin_module product.sort

sf_user/admin_module product.filter

ProductFormFilterbuildQuery

configurationdefaultFilters

Page 36: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

El listado desde la acción

actions.class.php

Page 37: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

La edición desde la vistaeditSuccess.php

newSucccess.php

_form_header

Page 38: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

La edición desde la vistaeditSuccess.php

newSucccess.php

_flashes

Page 39: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

La edición desde la vistaeditSuccess.php

newSucccess.php

_form_footer

Page 40: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

La edición desde la vistaeditSuccess.php

newSucccess.php

_form

Page 41: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

La edición desde la vistaeditSuccess.php

newSucccess.php

_form_actions

Page 42: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

La edición desde la acción

GET

POST

GET

PUT

Page 43: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

La edición desde la acción

Nuevo framework de formulario a partir de sf 1.0

La lógica depende del formulario no de la acción, no dependedel generador

José Antonio Pío os contará como domesticarlos mañana

Page 44: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Filtros

Page 45: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Los FiltrosFormularios muy especiales

TableMethod

foreach $fields

end

$this->addXXXColumnQuery

$this->addYYYQuery()

$this->addXXXColumnQuery()buildQuery

XXX = fieldYYY = type

Page 46: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Los Filtros

addForeignKeyQuery

$this->addYYYQuery()

addForeignKeyQuery

addEnumQuery

addTextQuery

addNumberQuery

addBooleanQuery

Page 47: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Los Filtros

addForeignKeyQuery

$this->addYYYQuery()

addForeignKeyQuery

addEnumQuery

addTextQuery

addNumberQuery

addBooleanQuery

Page 48: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Ejemplos

Page 49: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Ejemplos el modelo de datos

Page 50: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Ejemplos1. Botón activar/desactivar un producto

Page 51: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Ejemplos1. Botón activar/desactivar un producto

Mensaje de notificación

Nueva acción

Page 52: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Ejemplos1. Botón activar/desactivar un producto

Modificando la vista

list_td_actions.php

Page 53: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Ejemplos1. Botón activar/desactivar un producto

Modificando el controladoractions.class.php

Page 54: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Ejemplos2. Mostrar el número de productos y filtrar por ese campo

Page 55: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

Ejemplos2. Mostrar el número de productos y filtrar por ese campo

Page 56: symfony admin generator - decharlas

Jornadas Symfony http://decharlas.uji.es/symfony

¡Muchas gracias!

email: [email protected]

twitter: @loalf

blog: http://www.loalf.com

empresa: http://www.flai.es