SlideShare una empresa de Scribd logo
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

Más contenido relacionado

Similar a Symfony plugins - decharlas

Symfony 1 y 2
Symfony 1 y 2Symfony 1 y 2
Symfony 1 y 2
Roberto Germán Diaz
 
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
Cé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 Symfony
Javier Eguiluz
 
Symfony 2 - decharlas 2010
Symfony 2 - decharlas 2010Symfony 2 - decharlas 2010
Symfony 2 - decharlas 2010
Decharlas
 
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
Javier Eguiluz
 
Plone - Introducción y instalación
Plone - Introducción y instalaciónPlone - Introducción y instalación
Plone - Introducción y instalación
ajussis
 
Curso Plone Secundo Sesion
Curso Plone   Secundo SesionCurso Plone   Secundo Sesion
Curso Plone Secundo Sesion
ajussis
 
Symfony: Domesticando las Vistas - decharlas
Symfony: Domesticando las Vistas - decharlasSymfony: Domesticando las Vistas - decharlas
Symfony: Domesticando las Vistas - decharlas
Decharlas
 
Symfony: Domesticando las Vistas
Symfony: Domesticando las VistasSymfony: Domesticando las Vistas
Symfony: Domesticando las Vistas
Jose Antonio Pio
 
Presentacion Symfony2
Presentacion Symfony2Presentacion Symfony2
Presentacion Symfony2
Raul Fraile
 
Presentacion Symfony2 ADWE Alicante
Presentacion Symfony2 ADWE AlicantePresentacion Symfony2 ADWE Alicante
Presentacion Symfony2 ADWE Alicante
ADWE Team
 
symfony admin generator - decharlas
symfony admin generator - decharlassymfony admin generator - decharlas
symfony admin generator - decharlas
Decharlas
 
Symfony y Admin Generator
Symfony y Admin GeneratorSymfony y Admin Generator
Symfony y Admin Generator
Javier López
 
Symfony
SymfonySymfony
Introducción a symfony - decharlas
Introducción a symfony - decharlasIntroducción a symfony - decharlas
Introducción a symfony - decharlas
Decharlas
 
Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01
Alfonso Alba
 
Introduccion a symfony
Introduccion a symfonyIntroduccion a symfony
Introduccion a symfony
Alfonso Alba García
 
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
Juliozarate1106
 
Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework Symfony
Rodrigo Miranda
 

Similar 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
 
Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01
 
Introduccion a symfony
Introduccion a symfonyIntroduccion a symfony
Introduccion a symfony
 
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

Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
bendezuperezjimena
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Festibity
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
70244530
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
Manuel Diaz
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
Tecnología 5G Presentación.pdf trabajo .
Tecnología 5G Presentación.pdf trabajo .Tecnología 5G Presentación.pdf trabajo .
Tecnología 5G Presentación.pdf trabajo .
asrielgamer3421
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 

Último (20)

Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
Tecnología 5G Presentación.pdf trabajo .
Tecnología 5G Presentación.pdf trabajo .Tecnología 5G Presentación.pdf trabajo .
Tecnología 5G Presentación.pdf trabajo .
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 

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