SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
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
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
sesión patrocinada por




                               www.laigu.net
                        ...también hacemos webs...




Jornadas Symfony                                     http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
¿Y ESTE... QUIÉN ES?




               Jordi Llonch   email: jordi@laigu.net
                               twitter: jordillonch




Jornadas Symfony                                       http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
¿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
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?

                Usar un plugin




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?

                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
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
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
¿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
¿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
¿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
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
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
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
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
¿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
ESTRUCTURA DEL
          PLUGIN
               Clases
               Configuración
               Schemas
               Fixtures
               Modules
               Web assets
               Tasks
               ...

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
Jornadas Symfony        http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
symfony plugin:publish-assets




Jornadas Symfony                                        http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
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)

                        Nombre principal

                        Añadir como sufijo “Plugin”

                        Ejemplo: laiguSimplePlugin

               Crear carpeta plugins/laiguSimplePlugin


Jornadas Symfony                                                   http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
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
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
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
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
AÑADIR
        FUNCIONALIDAD

               Programad la funcionalidad
               utilizando:

                        modules

                        classes

                        ...



Jornadas Symfony                            http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
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
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
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
AÑADIR ARCHIVO
        LICENSE

                        Escoge una licencia:

                          MIT

                          BSD

                          LGPL

                          PHP License



Jornadas Symfony                               http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
AÑADIR ARCHIVO
        LICENSE

                        Escoge una licencia:

                          MIT

                          BSD

                          LGPL

                          PHP License



Jornadas Symfony                               http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
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
<?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
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
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
EJEMPLOS DE PLUGINS


               laiguAdminThemePlugin




               laiguExtGridPlugin




Jornadas Symfony                       http://decharlas.uji.es/symfony
Tuesday, July 6, 2010
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
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

Mais conteúdo relacionado

Semelhante a Symfony plugins - decharlas

Symfony en la gestión de un centro de computación avanzada
Symfony en la gestión de un centro de computación avanzadaSymfony en la gestión de un centro de computación avanzada
Symfony en la gestión de un centro de computación avanzadaCésar Suárez Ortega
 
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...Decharlas
 
Symfony2, Jornadas Symfony
Symfony2, Jornadas SymfonySymfony2, Jornadas Symfony
Symfony2, Jornadas SymfonyJavier Eguiluz
 
Symfony 2 - decharlas 2010
Symfony 2 - decharlas 2010Symfony 2 - decharlas 2010
Symfony 2 - decharlas 2010Decharlas
 
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
 
Plone - Introducción y instalación
Plone - Introducción y instalaciónPlone - Introducción y instalación
Plone - Introducción y instalaciónajussis
 
Curso Plone Secundo Sesion
Curso Plone   Secundo SesionCurso Plone   Secundo Sesion
Curso Plone Secundo Sesionajussis
 
Symfony: Domesticando las Vistas - decharlas
Symfony: Domesticando las Vistas - decharlasSymfony: Domesticando las Vistas - decharlas
Symfony: Domesticando las Vistas - decharlasDecharlas
 
Symfony: Domesticando las Vistas
Symfony: Domesticando las VistasSymfony: Domesticando las Vistas
Symfony: Domesticando las VistasJose Antonio Pio
 
Presentacion Symfony2
Presentacion Symfony2Presentacion Symfony2
Presentacion Symfony2Raul Fraile
 
Presentacion Symfony2 ADWE Alicante
Presentacion Symfony2 ADWE AlicantePresentacion Symfony2 ADWE Alicante
Presentacion Symfony2 ADWE AlicanteADWE Team
 
symfony admin generator - decharlas
symfony admin generator - decharlassymfony admin generator - decharlas
symfony admin generator - decharlasDecharlas
 
Symfony y Admin Generator
Symfony y Admin GeneratorSymfony y Admin Generator
Symfony y Admin GeneratorJavier López
 
Introducción a symfony - decharlas
Introducción a symfony - decharlasIntroducción a symfony - decharlas
Introducción a symfony - decharlasDecharlas
 
Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Alfonso Alba
 
Construcción de un ple Asesorias del uso de las TIC en la formación
Construcción de un ple Asesorias del uso de las TIC en la formaciónConstrucción de un ple Asesorias del uso de las TIC en la formación
Construcción de un ple Asesorias del uso de las TIC en la formaciónJuliozarate1106
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework SymfonyRodrigo Miranda
 

Semelhante a Symfony plugins - decharlas (20)

Symfony 1 y 2
Symfony 1 y 2Symfony 1 y 2
Symfony 1 y 2
 
Symfony en la gestión de un centro de computación avanzada
Symfony en la gestión de un centro de computación avanzadaSymfony en la gestión de un centro de computación avanzada
Symfony en la gestión de un centro de computación avanzada
 
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
Caso práctico II: symfony en la gestión de un centro de computación avanzada ...
 
Symfony2, Jornadas Symfony
Symfony2, Jornadas SymfonySymfony2, Jornadas Symfony
Symfony2, Jornadas Symfony
 
Symfony 2 - decharlas 2010
Symfony 2 - decharlas 2010Symfony 2 - decharlas 2010
Symfony 2 - decharlas 2010
 
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
 
Plone - Introducción y instalación
Plone - Introducción y instalaciónPlone - Introducción y instalación
Plone - Introducción y instalación
 
Curso Plone Secundo Sesion
Curso Plone   Secundo SesionCurso Plone   Secundo Sesion
Curso Plone Secundo Sesion
 
Symfony: Domesticando las Vistas - decharlas
Symfony: Domesticando las Vistas - decharlasSymfony: Domesticando las Vistas - decharlas
Symfony: Domesticando las Vistas - decharlas
 
Symfony: Domesticando las Vistas
Symfony: Domesticando las VistasSymfony: Domesticando las Vistas
Symfony: Domesticando las Vistas
 
Presentacion Symfony2
Presentacion Symfony2Presentacion Symfony2
Presentacion Symfony2
 
Presentacion Symfony2 ADWE Alicante
Presentacion Symfony2 ADWE AlicantePresentacion Symfony2 ADWE Alicante
Presentacion Symfony2 ADWE Alicante
 
symfony admin generator - decharlas
symfony admin generator - decharlassymfony admin generator - decharlas
symfony admin generator - decharlas
 
Symfony y Admin Generator
Symfony y Admin GeneratorSymfony y Admin Generator
Symfony y Admin Generator
 
Symfony
SymfonySymfony
Symfony
 
Introducción a symfony - decharlas
Introducción a symfony - decharlasIntroducción a symfony - decharlas
Introducción a symfony - decharlas
 
Introduccion a symfony
Introduccion a symfonyIntroduccion a symfony
Introduccion a symfony
 
Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01
 
Construcción de un ple Asesorias del uso de las TIC en la formación
Construcción de un ple Asesorias del uso de las TIC en la formaciónConstrucción de un ple Asesorias del uso de las TIC en la formación
Construcción de un ple Asesorias del uso de las TIC en la formación
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework Symfony
 

Último

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 

Último (13)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

Symfony plugins - decharlas

  • 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. 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. sesión patrocinada por www.laigu.net ...también hacemos webs... Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 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. ¿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. OBJETIVOS Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 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. 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. 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. 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. ¿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. ¿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. ¿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. 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. 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. 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. 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. ¿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. ESTRUCTURA DEL PLUGIN Clases Configuración Schemas Fixtures Modules Web assets Tasks ... Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 20. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 21. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 22. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 23. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 24. Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 25. symfony plugin:publish-assets Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 26. CREAR UN PLUGIN Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 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. 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. 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. 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. 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. AÑADIR FUNCIONALIDAD Programad la funcionalidad utilizando: modules classes ... Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 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. 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. 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. AÑADIR ARCHIVO LICENSE Escoge una licencia: MIT BSD LGPL PHP License Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 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. 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. <?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. 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. 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. EJEMPLOS DE PLUGINS laiguAdminThemePlugin laiguExtGridPlugin Jornadas Symfony http://decharlas.uji.es/symfony Tuesday, July 6, 2010
  • 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. 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