0
Jornadas Symfony                    5 y 6 de julio 2010
                                     Universitat Jaume I, Castelló...
NO REINVENTES LA RUEDA
                                        PLUGINS
                                      Jordi Llonch ...
sesión patrocinada por




                               www.laigu.net
                        ...también hacemos webs......
¿Y ESTE... QUIÉN ES?




               Jordi Llonch   email: jordi@laigu.net
                               twitter: jord...
¿A QUIÉN VA DIRIGIDO?


                        Ya conocéis Symfony.




                        Os preguntáis si vale la ...
OBJETIVOS




Jornadas Symfony        http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
OBJETIVOS
                ¿Qué es un plugin, porqué plugins y estado de los plugins en
                Sf a día de hoy?

 ...
OBJETIVOS
                ¿Qué es un plugin, porqué plugins y estado de los plugins en
                Sf a día de hoy?

 ...
OBJETIVOS
                ¿Qué es un plugin, porqué plugins y estado de los plugins en
                Sf a día de hoy?

 ...
OBJETIVOS
                ¿Qué es un plugin, porqué plugins y estado de los plugins en
                Sf a día de hoy?

 ...
¿QUÉ ES UN PLUGIN?

               Pieza de código que añade funcionalidades al proyecto

               Una forma de empa...
¿PORQUÉ PLUGINS?


               Reutilizar y compartir código común:

                        Entre diversos proyectos

...
¿PORQUÉ PLUGINS?

                                 REUTILIZACIÓN

               Reutilizar y compartir código común:

   ...
PLUGINS A DIA DE HOY

               2 de julio del 2010:

                        1055 plugins

                        2...
PLUGINS MÁS
        POPULARES
          1. sfGuardPlugin
          2. sfDoctrineGuardPlugin
          3. sfFormExtraPlugin...
USAR UN PLUGIN

               Leer el README

               Instalarlo:

                        PEAR
                  ...
USAR UN PLUGIN
               Actívalo en tu proyecto:
                 /config/ProjectConfiguration.class.php:
          ...
¿CÓMO DEBE SER UN
        PLUGIN Y CÓMO ENCAJA?
               Independiente de la aplicación o proyecto
               Pe...
ESTRUCTURA DEL
          PLUGIN
               Clases
               Configuración
               Schemas
               F...
Jornadas Symfony        http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
Jornadas Symfony        http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
Jornadas Symfony        http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
Jornadas Symfony        http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
Jornadas Symfony        http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
symfony plugin:publish-assets




Jornadas Symfony                                        http://decharlas.uji.es/symfony
...
CREAR UN PLUGIN




Jornadas Symfony          http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
CREAR UN PLUGIN

               Escoger un nombre:

                        Prefijo (sf sólo para plugins oficiales)

    ...
AÑADIR
        CONFIGURACIÓN
               Escribe tu configuración por defecto:
                        plugins/laiguSim...
AÑADIR MODULES

               La misma estructura que un módulo “normal”

                        Podéis mover módulos de...
AÑADIR WEB ASSETS

               Añadir web assets en la carpeta:

                        plugins/laiguSimplePlugin/web/...
AÑADIR CLASSES DE
        MODELO
               plugins/laiguSimplePlugin/config/schema.yml
                 Archivo habit...
AÑADIR
        FUNCIONALIDAD

               Programad la funcionalidad
               utilizando:

                      ...
PUBLÍCALO

               Para uso privado

                        Utiliza un svn:external para incluirlo en tus proyecto...
PUBLÍCALO

               Para uso privado

                        Utiliza un svn:external para incluirlo en tus proyecto...
AÑADIR ARCHIVO
        README
               Estructura:
                        Instalación
                        Confi...
AÑADIR ARCHIVO
        LICENSE

                        Escoge una licencia:

                          MIT

             ...
AÑADIR ARCHIVO
        LICENSE

                        Escoge una licencia:

                          MIT

             ...
EMPAQUETAR UN
        PLUGIN
               Los plugins Symfony son paquetes PEAR
               Añadir package.xml
      ...
<?xml version="1.0" encoding="UTF-8"?>
                                                                           <file ba...
CREAR UN
        PACKAGE.XML

               PEAR_Package File Manager

               http://pear.php.net/package/PEAR_Pa...
SYMFONY-PROJECT.COM

               Crea una cuenta

                        http://www.symfony-project.org/user/new

    ...
EJEMPLOS DE PLUGINS


               laiguAdminThemePlugin




               laiguExtGridPlugin




Jornadas Symfony     ...
CONCLUSIONES
               Una gran forma de extender funcionalidades en el
               framework

               Una ...
GRACIAS

               Jordi Llonch               email: jordi@laigu.net
                                           twitt...
Upcoming SlideShare
Loading in...5
×

Symfony plugins - decharlas

1,785

Published on

Charla sobre plugins a cargo de Jodi Llonch en las primeras jornadas symfony - decharlas.com

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,785
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
58
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Symfony plugins - decharlas"

  1. 1. Jornadas Symfony 5 y 6 de julio 2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony organizan patrocinan colaboran Tuesday, July 6, 2010
  2. 2. NO REINVENTES LA RUEDA PLUGINS Jordi Llonch <jordi@laigu.net> Jornadas Symfony 5 y 6 de julio 2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  3. 3. sesión patrocinada por www.laigu.net ...también hacemos webs... Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  4. 4. ¿Y ESTE... QUIÉN ES? Jordi Llonch email: jordi@laigu.net twitter: jordillonch Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  5. 5. ¿A QUIÉN VA DIRIGIDO? Ya conocéis Symfony. Os preguntáis si vale la pena utilizar Symfony. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  6. 6. OBJETIVOS Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  7. 7. OBJETIVOS ¿Qué es un plugin, porqué plugins y estado de los plugins en Sf a día de hoy? Usar un plugin Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  8. 8. OBJETIVOS ¿Qué es un plugin, porqué plugins y estado de los plugins en Sf a día de hoy? Usar un plugin ¿Cómo debe ser un plugin y cómo encaja? Estructura Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  9. 9. OBJETIVOS ¿Qué es un plugin, porqué plugins y estado de los plugins en Sf a día de hoy? Usar un plugin ¿Cómo debe ser un plugin y cómo encaja? Estructura Crear un plugin Publicar un plugin Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  10. 10. OBJETIVOS ¿Qué es un plugin, porqué plugins y estado de los plugins en Sf a día de hoy? Usar un plugin ¿Cómo debe ser un plugin y cómo encaja? Estructura Crear un plugin Publicar un plugin Ejemplos de plugins Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  11. 11. ¿QUÉ ES UN PLUGIN? Pieza de código que añade funcionalidades al proyecto Una forma de empaquetar esas piezas Añadir funcionalidad desde: mini proyecto 1 librería (modelo, acciones, plantillas, js, css...) Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  12. 12. ¿PORQUÉ PLUGINS? Reutilizar y compartir código común: Entre diversos proyectos O mejor... para la comunidad (aprendiendo/ compartiendo) Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  13. 13. ¿PORQUÉ PLUGINS? REUTILIZACIÓN Reutilizar y compartir código común: Entre diversos proyectos O mejor... para la comunidad (aprendiendo/ compartiendo) Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  14. 14. PLUGINS A DIA DE HOY 2 de julio del 2010: 1055 plugins 2808 releases 442 developers 10809 users Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  15. 15. PLUGINS MÁS POPULARES 1. sfGuardPlugin 2. sfDoctrineGuardPlugin 3. sfFormExtraPlugin 4. sfThumbnailPlugin 5. sfFeed2Plugin 6. sfJqueryReloadedPlugin 7. sfDoctrinePlugin 8. sfImageTransformPlugin 9. sfWebBrowserPlugin 10. sfAdminDashPlugin 11. ... Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  16. 16. USAR UN PLUGIN Leer el README Instalarlo: PEAR ./symfony plugin:install laiguSimplePlugin --stability=beta Descargar el tar.gz; Copiar a /plugins/ svn:external/git Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  17. 17. USAR UN PLUGIN Actívalo en tu proyecto: /config/ProjectConfiguration.class.php: class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->enablePlugins('sfDoctrinePlugin', 'laiguSimplePlugin'); } } Activa los modules en tu aplicación (si es necesario): /apps/frontend/config/settings.yml all: .settings: enabled_modules: [default, sfGuardAuth, laiguSimple] Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  18. 18. ¿CÓMO DEBE SER UN PLUGIN Y CÓMO ENCAJA? Independiente de la aplicación o proyecto Personalizable aplicación personalización personalización plugin personalización Symfony plugin plugin ORM PHP database Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  19. 19. ESTRUCTURA DEL PLUGIN Clases Configuración Schemas Fixtures Modules Web assets Tasks ... Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  20. 20. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  21. 21. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  22. 22. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  23. 23. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  24. 24. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  25. 25. symfony plugin:publish-assets Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  26. 26. CREAR UN PLUGIN Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  27. 27. CREAR UN PLUGIN Escoger un nombre: Prefijo (sf sólo para plugins oficiales) Nombre principal Añadir como sufijo “Plugin” Ejemplo: laiguSimplePlugin Crear carpeta plugins/laiguSimplePlugin Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  28. 28. AÑADIR CONFIGURACIÓN Escribe tu configuración por defecto: plugins/laiguSimplePlugin/config/app.yml all: laigu_simple_plugin: foo: bar // ejemplo código en plug-in $foo = sfConfig::get('app_laigu_simple_plugin_foo'); Personaliza para cada aplicación: apps/<APP>/config/app.yml // cambia el valor por defecto de 'foo' en la aplicación app.yml all: laigu_simple_plugin: foo: barbar Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  29. 29. AÑADIR MODULES La misma estructura que un módulo “normal” Podéis mover módulos desde vuestra aplicación a la carpeta modules/ del plugin Recordad habilitar los módulos en el settings.yml all: .settings: enabled_modules: [default, sfGuardAuth, laiguSimple] Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  30. 30. AÑADIR WEB ASSETS Añadir web assets en la carpeta: plugins/laiguSimplePlugin/web/ plugins/laiguSimplePlugin/web/js plugins/laiguSimplePlugin/web/css plugins/laiguSimplePlugin/web/images symfony plugins:publish-assets Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  31. 31. AÑADIR CLASSES DE MODELO plugins/laiguSimplePlugin/config/schema.yml Archivo habitual de esquema Se pueden mezclar: #schema original, en plugins/laiguSimplePlugin/config/schema.yml Articulo: columns: nombre: string(50) + #schema proyecto, en config/schema.yml Articulo: columns: titulo: string(50) = #resultado, mezclado interno y uso para generación de modelo y sql Articulo: columns: nombre: string(50) titulo: string(50) Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  32. 32. AÑADIR FUNCIONALIDAD Programad la funcionalidad utilizando: modules classes ... Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  33. 33. PUBLÍCALO Para uso privado Utiliza un svn:external para incluirlo en tus proyectos Para la comunidad La comunidad os ayudará a encontrar y solucionar bugs y perfeccionar vuestro plugin Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  34. 34. PUBLÍCALO Para uso privado Utiliza un svn:external para incluirlo en tus proyectos Para la comunidad La comunidad os ayudará a encontrar y solucionar bugs y perfeccionar vuestro plugin Fama Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  35. 35. AÑADIR ARCHIVO README Estructura: Instalación Configuración Personalización Limitaciones conocidas TODO Lista de cambios Track Wiki Format http://www.symfony-project.org/plugins/markdown_dingus Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  36. 36. AÑADIR ARCHIVO LICENSE Escoge una licencia: MIT BSD LGPL PHP License Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  37. 37. AÑADIR ARCHIVO LICENSE Escoge una licencia: MIT BSD LGPL PHP License Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  38. 38. EMPAQUETAR UN PLUGIN Los plugins Symfony son paquetes PEAR Añadir package.xml Name Description Summary Autor/es Versión Estabilidad Dependencias Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  39. 39. <?xml version="1.0" encoding="UTF-8"?> <file baseinstalldir="." <package packagerversion="1.8.0" version="2.0" xmlns="http:// md5sum="e0bed858944fdb4261070561572b3ae2" name="README" pear.php.net/dtd/package-2.0" xmlns:tasks="http:// role="data" /> pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/ </dir> 2001/XMLSchema-instance" xsi:schemaLocation="http:// </contents> pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/ <dependencies> tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 <required> http://pear.php.net/dtd/package-2.0.xsd"> <php> <name>laiguSimplePlugin</name> <min>5.1.0</min> <channel>pear.symfony-project.com</channel> </php> <summary>Simple plugin example.</summary> <pearinstaller> <description>Simple plugin example.</description> <min>1.4.1</min> <lead> </pearinstaller> <name>Jordi Llonch</name> <package> <user>jllonch</user> <name>symfony</name> <email>jordi@laigu.net</email> <channel>pear.symfony-project.com</channel> <active>yes</active> <min>1.2.0</min> </lead> <max>1.5.0</max> <date>2010-07-06</date> <exclude>1.5.0</exclude> <time>10:30:00</time> </package> <version> </required> <release>0.0.1</release> </dependencies> <api>0.0.1</api> <phprelease /> </version> <changelog> <stability> <release> <release>beta</release> <version> <api>beta</api> <release>0.1.0</release> </stability> <api>0.1.0</api> <license uri="http://www.opensource.org/licenses/mit- </version> license.html">MIT</license> <stability> <notes> <release>beta</release> Added change max rows per page. <api>beta</api> </notes> </stability> <contents> <date>2010-07-06</date> <dir baseinstalldir="." name="/"> <license uri="http://www.opensource.org/licenses/mit- <file baseinstalldir="." license.html">MIT</license> md5sum="1d3a58638917a2095b6d5d3429de926e" name="config/ <notes>initial release</notes> app.yml" role="data" /> </release> ....... </changelog> <file baseinstalldir="." </package> md5sum="516839143e185f2b278b01f5a43af076" name="LICENSE" role="data" /> Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  40. 40. CREAR UN PACKAGE.XML PEAR_Package File Manager http://pear.php.net/package/PEAR_PackageFileManager_Cli Cuidado, en el archivo package.xml generado por esta utilidad, se debe sustituir el valor del atributo rol “php” por “data” Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  41. 41. SYMFONY-PROJECT.COM Crea una cuenta http://www.symfony-project.org/user/new Crea el plugin http://www.symfony-project.org/plugins/new Sube el paquete PEAR que has creado Publicítalo mailing-list, forums, twitter... Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  42. 42. EJEMPLOS DE PLUGINS laiguAdminThemePlugin laiguExtGridPlugin Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  43. 43. CONCLUSIONES Una gran forma de extender funcionalidades en el framework Una nueva forma de encapsular nuestro código Muchos plugins disponibles No todos son útiles y de calidad Muchas opciones para la personalización Si el plugin está desarrollado correctamente Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  44. 44. GRACIAS Jordi Llonch email: jordi@laigu.net twitter: jordillonch Por cierto, buscamos programadores para incorporar a nuestro equipo... Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×