Sunday, July 3, 2011
Sunday, July 3, 2011
Quién es Pablo Godel?"



   • Argentino, viviendo en Miami desde 1999, EE.UU.
   • Programador PHP, Symfony, entre otros
   • Fundador de la lista de PHP en español http://
     news.php.net/php.general.es/3 )antes de Julio 2000(
   • Pasé el control a php.net con más de 1000 subscriptos
   • Co-fundador de ServerGrove Networks
   ⁃ fundada en 2005 
   ⁃ servicios de hosting especializado en PHP y Symfony


Sunday, July 3, 2011
Entorno Productivo




                       Sistema Operativo



Sunday, July 3, 2011
Entorno Productivo - sistema operativo




                       Opciones disponibles

                       • Mac OS X )basado en Unix(
                       • Linux
                       • Windows




Sunday, July 3, 2011
Entorno Productivo - sistema operativo

                                  Regla #1



                       El entorno de desarrollo
                       idealmente tiene que ser lo más
                       cercano posible al servidor de
                       producción.




Sunday, July 3, 2011
Entorno Productivo - sistema operativo

                                   Regla #1




                       Si el servidor corre Linux, el
                       desarrollo debería ser Linux o
                       algún Unix, incluso Mac OS X.




Sunday, July 3, 2011
Entorno Productivo - sistema operativo

                                  Regla #1




                       En cambio, si el servidor es
                       Windows, idealmente el
                       desarrollo debe ser en Windows.




Sunday, July 3, 2011
Entorno Productivo - sistema operativo

                                  Regla #1



                       Todo esto es muy importante
                       para evitar sorpresas )que
                       generalmente son malas porque
                       son problemas(




Sunday, July 3, 2011
Entorno Productivo - sistema operativo

                              Regla #1


      Razones:

       • Falta de extensiones de PHP
       • Diferencia en versiones de PHP y extensions
       • Diferencia en configuración de Apache y PHP
         )php.ini(
       • Diferencia en el sistema de archivos )case sensitive/
         insensitive(



Sunday, July 3, 2011
Entorno Productivo - sistema operativo

 Diferencia en el sistema de archivos )case sensitive/
 insensitive(



          • Linux )case sensitve(
          • Windows )case insensitive(
          • Mac OS X )por defecto, case insensitive, se puede
            cambiar pero trae problemas(




Sunday, July 3, 2011
Entorno Productivo - sistema operativo

 Diferencia en el sistema de archivos )case sensitive/
 insensitive(
  <?php
  use SymfonyComponentClassLoaderUniversalClassLoader;
  $loader = new UniversalClassLoader();
  $loader->registerNamespaces(array(
     'Symfony'           => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/
  bundles'),
     'Application'      => __DIR__.'/../src',
     'Sensio'          => __DIR__.'/../vendor/bundles',



               Archivo: src/Application/miBundle/clase.php

                 $clase = new Application/MiBundle/Clase()

Sunday, July 3, 2011
Entorno Productivo - sistema operativo


                       No olvidarse de los VMs

      Permiten correr Linux dentro de Windows o Mac OS X


                        • VirtualBox )gratis(
                        • VMware Player )gratis(
                        • VMWare Fusion
                        • Parallels Desktop



Sunday, July 3, 2011
Entorno Productivo - sistema operativo




             Otra alternativa es tener un servidor dedicado o
            virtual aparte que se pueda montar con SMB / NFS




Sunday, July 3, 2011
Entorno Productivo - sistema operativo




          Los servidores virtuales tienen la ventaja que se
       pueden clonar para cuando se agrega un programador
                             al equipo.




Sunday, July 3, 2011
Entorno Productivo - sistema operativo




          Jefes: ofrezcan al programador elegir su entorno de
         desarrollo. No hay nada más importante que sentirse
                cómodo y manejar bien las herramientas.




Sunday, July 3, 2011
Entorno Productivo - sistema operativo

                                   Regla #2




                Usen lo que les sienta mejor y donde sean más
                productivos, pero prueben cosas nuevas.




Sunday, July 3, 2011
Entorno Productivo




                       Stacks



Sunday, July 3, 2011
Entorno Productivo - Stacks

                           Opciones disponibles

                       • WAMP )Windows(
                       • XAMP )Mac(
                       • Zend Server CE )Win,Mac,Linux(
                       • Liip PHP )Mac(
                         http://php-osx.liip.ch/




Sunday, July 3, 2011
Entorno Productivo




                       Editor / IDE



Sunday, July 3, 2011
Entorno Productivo - Editor/IDE

                       Opciones disponibles

        • Netbeans 7 PHP )gratis(
        • phpStorm 2.1 )$84 personal, $168 comercial, gratis
          para proyectos OS(
        • Eclipse )gratis(
        • Zend Studio 8 )$299(
        • Komodo IDE 6 )$295 sin soporte/upgrades(


             Textmate (Mac), vi/vim, emacs, notepad, etc.


Sunday, July 3, 2011
Entorno Productivo - Editor/IDE


                         ¿Por qué un IDE?

        • integración con Xdebug / otros
        • breakpoints y watches
        • code completion
        • syntax highligher
        • PHPDoc
        • Twig! )phpStorm(
        • muchas más!




Sunday, July 3, 2011
Entorno Productivo - Editor/IDE


                        ¿Por qué no un IDE?


        • generalmente requieren mucha memoria
        • curva de aprendizaje
        • familiarización con herramientas ya conocidas y
          dominadas
        • costo




Sunday, July 3, 2011
Entorno Productivo - Editor/IDE




          Jefes: ofrezcan al programador elegir su entorno de
         desarrollo. No hay nada más importante que sentirse
                cómodo y manejar bien las herramientas.




Sunday, July 3, 2011
Entorno Productivo




                       Source Control



Sunday, July 3, 2011
Entorno Productivo - source control




                       No importa que tan chico sea el
                       proyecto, usen source control!




Sunday, July 3, 2011
Entorno Productivo - source control

                       Opciones disponibles



                              Git...




Sunday, July 3, 2011
Entorno Productivo - source control

                          Opciones disponibles

                          ok... también existen:


                       • hg )mercurial(
                       • SVN )subversion(
                       • CVS )alguien se acuerda?(




Sunday, July 3, 2011
Entorno Productivo - source control




                       Pero Git + github revolucionaron el mundo de
                       proyectos open source




Sunday, July 3, 2011
Entorno Productivo




                       Testing



Sunday, July 3, 2011
Entorno Productivo - Testing

                       Opciones disponibles - Unit Tests


                                    • PHPUnit
                                    • SimpleTest




Sunday, July 3, 2011
Entorno Productivo - Testing

                  Opciones disponibles - Continuous Integration


                       • CruiseControl
                       • phpUnderControl
                       • Sismo
                       • Jenkins
                         http://jenkins-php.org/




Sunday, July 3, 2011
Entorno Productivo - Testing

                         Opciones disponibles - Frontend



                       • Symfony2
                       • Selenium RC
                       • Mink




Sunday, July 3, 2011
Entorno Productivo




                       Debugging



Sunday, July 3, 2011
Entorno Productivo - debugging

                               Opciones disponibles

                       • Xdebug
                         • breakpoints
                         • stack traces
                         • profiler
                       • Zend Studio
                       • FirePHP
                       • print_r)( / var_dump)( / echo :-(




Sunday, July 3, 2011
Entorno Productivo - debugging

                                configuración PHP



                       • display_errors = 0
                       • error_log = /var/log/php.log
                       • error_reporting = -1




Sunday, July 3, 2011
Entorno Productivo




                       Deployment



Sunday, July 3, 2011
Entorno Productivo - deployment

                       Opciones disponibles


                       • capistrano
                       • capifony )symfony(
                       • phing
                       • git / svn / etc
                       • rsync
                       • ftp




Sunday, July 3, 2011
Entorno Productivo - deployment

                                                       Capifony

             • Instalar capistrano
                ⁃ gem install capifony
             • Inicializamos el proyecto
                ⁃ capifony .
             • Configuramos el deployment con config/deploy.rb
             • Seteamos el servidor
                ⁃ cap deploy:setup
             • Hacemos el deployment
                ⁃ cap deploy
             • Y la próxima vez y la otra y la otra…:
                ⁃ cap deploy

Sunday, July 3, 2011
Entorno Productivo - deployment
   set :application, "sg11"
   set :domain,      "servergrove.com"                                         Capifony
   set :deploy_to, "/var/www/vhosts/sg11.servergrove.com"

   set :repository, "git@github.com:servergrove/sg11.git"
   set :scm,       :git
   set :branch,     "master"

   set :user,    "deployer"
   ssh_options[:port] = 22123
   ssh_options[:forward_agent] = true
   set :use_sudo, false

   role :web,          "sg100.servergrove.com"              # Your HTTP server, Apache/etc

   # directories that will be shared between all deployments
   set :shared_children, [app_path + "/logs", web_path + "/uploads"]

   set :update_vendors, false

   set :dump_assetic_assets, true


Sunday, July 3, 2011
Entorno Productivo - deployment

                                                           Capifony

   `-- /var/www/vhosts/sg11.servergrove.com
     |-- current ! /var/www/vhosts/sg11.servergrove.com/releases/
   20100512131539
     |-- releases
       |-- 20100512131539
       |-- 20100509150741
       `-- 20100509145325
     `-- shared
       |-- log
       |-- config
         `-- databases.yml
       `-- web
         `-- uploads




Sunday, July 3, 2011
Entorno Productivo




                       Tips



Sunday, July 3, 2011
Entorno Productivo - tips

                                       SSH
                • ssh-keygen -t dsa
                • ~/.ssh/config
                    Host *
                    ForwardAgent yes

                • ssh-add



                 Ahora, cuando nos conectemos al servidor
                 remoto y ejecutemos git pull, utilizará el key de
                 nuestra computadora.


Sunday, July 3, 2011
Entorno Productivo - tips


                • El poder del archivo hosts
                  • Unix: /etc/hosts
                  • Windows: /Windows/System32/etc/hosts

                 Permite acceder a un IP sin tener que cambiar
                 el DNS
                 Permite crear virtual hosts en el servidor local
                 de desarrollo, ej: desymfony.local



Sunday, July 3, 2011
Entorno Productivo - tips
  El poder del archivo hosts
  127.0.0.1    localhost symfony2rc2.local rockmongo.local mysql_admin.local maestro.local
  desymfony.local sg11.local sgcontrol2.local



  Apache Virtual Document Root
   UseCanonicalName Off

   VirtualDocumentRoot /Users/pgodel/Sites/%0/web

   <Location />
       AllowOverride All
       Options +FollowSymLinks
   </Location>


                            • ~/Sites/desymfony.local
                            • ~/Sites/sg11.local
                            •…
Sunday, July 3, 2011
Entorno Productivo - tips

                                        Aliases en BASH




           alias phplog="tail -f /var/log/apache2/php_errors.log"




           $ phplog




Sunday, July 3, 2011
Entorno Productivo - tips

                                 pbcopy & pbpaste )Mac(




           cat archivo.txt | pbcopy




           pbpaste > nuevo.txt




Sunday, July 3, 2011
Entorno Productivo




                       ¿Preguntas?




Sunday, July 3, 2011
Entorno Productivo



                          ¡MUCHAS GRACIAS!



                       Slides: http://slideshare.net/pgodel
                                Twitter: @pgodel
                              IRC Freenode: pgodel




Sunday, July 3, 2011

Más contenido relacionado

PDF
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PDF
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
PDF
Podcasting
PPT
Entorno productivo.doc[1]
PPTX
Diversificación EPT 2013
PPTX
PROCESOS DE PRODUCCION
PDF
Directiva 030
PPTX
Trabajo productivo
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
Podcasting
Entorno productivo.doc[1]
Diversificación EPT 2013
PROCESOS DE PRODUCCION
Directiva 030
Trabajo productivo

Destacado (20)

ODP
Celebración Día de Andalucía 2013
DOC
Organizacion tercero
PPT
Decreto 53/2009 de 25 de junio, que regula la convivencia escolar y los derec...
PDF
Sesion com 2g_01
PPT
Normas de convivencia
DOC
Sesión de Aprendizaje de Guantes
PDF
Sesión de aprendizaje 03 unidad didáctica 01 área comunicación tercer grado...
PPT
Proyecto mundo animal
DOC
Carta Descriptiva
PPT
Estudio De Mercado Para Un Proyecto
PDF
Técnicas e instrumentos de evaluación de competencias
PDF
Sesión de Aprendizaje 01 de Unidad Didáctica 01 del Área de Personal Social ...
DOC
Progrmacion curricular anual de educacion para el trabajo
PPT
EJEMPLO DE ESTUDIO DE MERCADO
PPT
Ejemplo power point estudio de mercado
PDF
Cómo elaborar un Portafolio de Evidencias
PPTX
EJEMPLO DE PORTAFOLIO DE EVIDENCIAS CON ENUNCIADOS GUIAS
DOCX
Secuencia de actividades convivencia imprimir
PDF
Sesion de aprendizaje educacion para el trabajo
PPTX
Plan de TUTORÍA del aula.
Celebración Día de Andalucía 2013
Organizacion tercero
Decreto 53/2009 de 25 de junio, que regula la convivencia escolar y los derec...
Sesion com 2g_01
Normas de convivencia
Sesión de Aprendizaje de Guantes
Sesión de aprendizaje 03 unidad didáctica 01 área comunicación tercer grado...
Proyecto mundo animal
Carta Descriptiva
Estudio De Mercado Para Un Proyecto
Técnicas e instrumentos de evaluación de competencias
Sesión de Aprendizaje 01 de Unidad Didáctica 01 del Área de Personal Social ...
Progrmacion curricular anual de educacion para el trabajo
EJEMPLO DE ESTUDIO DE MERCADO
Ejemplo power point estudio de mercado
Cómo elaborar un Portafolio de Evidencias
EJEMPLO DE PORTAFOLIO DE EVIDENCIAS CON ENUNCIADOS GUIAS
Secuencia de actividades convivencia imprimir
Sesion de aprendizaje educacion para el trabajo
Plan de TUTORÍA del aula.
Publicidad

Similar a Entorno de desarrollo productivo (20)

PDF
Plone - Introducción y instalación
PDF
Curso Plone Secundo Sesion
PPTX
Presentación grupo 183
PPTX
Presentación grupo 183
PPTX
Presentación grupo 183 -power point
PPTX
Presentación grupo 183
PPTX
Presentación grupo 183
PPTX
Presentación Sistemas operativos grupo 183
PPTX
Presentación grupo 183 -power point
PPTX
Presentación grupo 183
PPT
Clase1(software libre)
PDF
[ES] Sistemas de control de versiones
PDF
Despliegue de aplicaciones PHP
PDF
Elementos sobre Symfony 2.1
PPSX
Introducción a symfony
PDF
Ecosistemas software para Flex
PDF
Jenkins, no me rompas los builds!
DOCX
Comparativo de distribuciones Linux
ODP
Buildout: Crear y desplegar entornos reproducibles en Python
Plone - Introducción y instalación
Curso Plone Secundo Sesion
Presentación grupo 183
Presentación grupo 183
Presentación grupo 183 -power point
Presentación grupo 183
Presentación grupo 183
Presentación Sistemas operativos grupo 183
Presentación grupo 183 -power point
Presentación grupo 183
Clase1(software libre)
[ES] Sistemas de control de versiones
Despliegue de aplicaciones PHP
Elementos sobre Symfony 2.1
Introducción a symfony
Ecosistemas software para Flex
Jenkins, no me rompas los builds!
Comparativo de distribuciones Linux
Buildout: Crear y desplegar entornos reproducibles en Python
Publicidad

Más de Pablo Godel (20)

PDF
SymfonyCon Cluj 2017 - Symfony at OpenSky
PDF
Symfony Live San Francisco 2017 - Symfony @ OpenSky
PDF
DeSymfony 2017 - Symfony en OpenSky
PDF
Deploying Symfony | symfony.cat
PDF
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
PDF
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
PDF
The Modern Developer Toolbox
PDF
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PDF
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
PDF
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
PDF
Lone StarPHP 2013 - Building Web Apps from a New Angle
PDF
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
PDF
Creating Mobile Apps With PHP & Symfony2
PDF
Tek13 - Creating Mobile Apps with PHP and Symfony
PDF
Tek 2013 - Building Web Apps from a New Angle with AngularJS
PDF
Soflophp 2013 - SysAdmin skills for PHP developers
PDF
Symfony2 and MongoDB - MidwestPHP 2013
PDF
Rock Solid Deployment of Web Applications
PDF
Codeworks'12 Rock Solid Deployment of PHP Apps
PDF
PFCongres 2012 - Rock Solid Deployment of PHP Apps
SymfonyCon Cluj 2017 - Symfony at OpenSky
Symfony Live San Francisco 2017 - Symfony @ OpenSky
DeSymfony 2017 - Symfony en OpenSky
Deploying Symfony | symfony.cat
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
The Modern Developer Toolbox
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
php[architect] Summit Series DevOps 2013 - Rock solid deployment of PHP apps
Lone Star PHP 2013 - Sysadmin Skills for PHP Developers
Lone StarPHP 2013 - Building Web Apps from a New Angle
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
Creating Mobile Apps With PHP & Symfony2
Tek13 - Creating Mobile Apps with PHP and Symfony
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Soflophp 2013 - SysAdmin skills for PHP developers
Symfony2 and MongoDB - MidwestPHP 2013
Rock Solid Deployment of Web Applications
Codeworks'12 Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP Apps

Último (20)

PDF
Sociedad y ética digital en inteligencia artificial
PDF
EL RESPETO mejororado para aprender .pdf
PPTX
proceso de la comunicación entre computadoras 21111.pptx
PDF
conceptosbsicosdeprogramacinpseintlaura.pdf
PDF
Introducción a REALITY (agosto de 2024).pdf
PPTX
1.Introducción a los sistemas de control.pptx
PPTX
Redes neuronales artificiales y como entrenarlas
PDF
Conceptos básicos de programación PseInt laura.pdf
PDF
Más Allá de la Autenticación: Gestión Moderna de Identidad en el sector Finan...
DOCX
Conceptos básicos de programación PseInt laura.docx
PDF
Gtd Infraestructura Digital de Misión Critica
PDF
Reduciendo el Ciber Riesgo en Entornos Financieros
PDF
PLAN DE ASEGURAMIENTO CURSOS CORTOS 2024.pdf
PPTX
seguridad digital ,paloma bernabe alvarez.
PDF
Estrategia de Apoyo Juan José Narvaéz 9-4
PDF
Control total para proteger tus activos en base al riesgo
PDF
Virus y otras amenazas _ Ciudadanía _ INCIBE.pdf
PDF
004-CC2014-Irrigacion Mbb equinos del mundo
PDF
sol tecnología 2025.pdf........pdf10-7grado
PDF
Ciberataques, Normativas y Protección: Ayudando a las Entidades Financieras a...
Sociedad y ética digital en inteligencia artificial
EL RESPETO mejororado para aprender .pdf
proceso de la comunicación entre computadoras 21111.pptx
conceptosbsicosdeprogramacinpseintlaura.pdf
Introducción a REALITY (agosto de 2024).pdf
1.Introducción a los sistemas de control.pptx
Redes neuronales artificiales y como entrenarlas
Conceptos básicos de programación PseInt laura.pdf
Más Allá de la Autenticación: Gestión Moderna de Identidad en el sector Finan...
Conceptos básicos de programación PseInt laura.docx
Gtd Infraestructura Digital de Misión Critica
Reduciendo el Ciber Riesgo en Entornos Financieros
PLAN DE ASEGURAMIENTO CURSOS CORTOS 2024.pdf
seguridad digital ,paloma bernabe alvarez.
Estrategia de Apoyo Juan José Narvaéz 9-4
Control total para proteger tus activos en base al riesgo
Virus y otras amenazas _ Ciudadanía _ INCIBE.pdf
004-CC2014-Irrigacion Mbb equinos del mundo
sol tecnología 2025.pdf........pdf10-7grado
Ciberataques, Normativas y Protección: Ayudando a las Entidades Financieras a...

Entorno de desarrollo productivo

  • 3. Quién es Pablo Godel?" • Argentino, viviendo en Miami desde 1999, EE.UU. • Programador PHP, Symfony, entre otros • Fundador de la lista de PHP en español http:// news.php.net/php.general.es/3 )antes de Julio 2000( • Pasé el control a php.net con más de 1000 subscriptos • Co-fundador de ServerGrove Networks ⁃ fundada en 2005  ⁃ servicios de hosting especializado en PHP y Symfony Sunday, July 3, 2011
  • 4. Entorno Productivo Sistema Operativo Sunday, July 3, 2011
  • 5. Entorno Productivo - sistema operativo Opciones disponibles • Mac OS X )basado en Unix( • Linux • Windows Sunday, July 3, 2011
  • 6. Entorno Productivo - sistema operativo Regla #1 El entorno de desarrollo idealmente tiene que ser lo más cercano posible al servidor de producción. Sunday, July 3, 2011
  • 7. Entorno Productivo - sistema operativo Regla #1 Si el servidor corre Linux, el desarrollo debería ser Linux o algún Unix, incluso Mac OS X. Sunday, July 3, 2011
  • 8. Entorno Productivo - sistema operativo Regla #1 En cambio, si el servidor es Windows, idealmente el desarrollo debe ser en Windows. Sunday, July 3, 2011
  • 9. Entorno Productivo - sistema operativo Regla #1 Todo esto es muy importante para evitar sorpresas )que generalmente son malas porque son problemas( Sunday, July 3, 2011
  • 10. Entorno Productivo - sistema operativo Regla #1 Razones: • Falta de extensiones de PHP • Diferencia en versiones de PHP y extensions • Diferencia en configuración de Apache y PHP )php.ini( • Diferencia en el sistema de archivos )case sensitive/ insensitive( Sunday, July 3, 2011
  • 11. Entorno Productivo - sistema operativo Diferencia en el sistema de archivos )case sensitive/ insensitive( • Linux )case sensitve( • Windows )case insensitive( • Mac OS X )por defecto, case insensitive, se puede cambiar pero trae problemas( Sunday, July 3, 2011
  • 12. Entorno Productivo - sistema operativo Diferencia en el sistema de archivos )case sensitive/ insensitive( <?php use SymfonyComponentClassLoaderUniversalClassLoader; $loader = new UniversalClassLoader(); $loader->registerNamespaces(array( 'Symfony' => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/ bundles'), 'Application' => __DIR__.'/../src', 'Sensio' => __DIR__.'/../vendor/bundles', Archivo: src/Application/miBundle/clase.php $clase = new Application/MiBundle/Clase() Sunday, July 3, 2011
  • 13. Entorno Productivo - sistema operativo No olvidarse de los VMs Permiten correr Linux dentro de Windows o Mac OS X • VirtualBox )gratis( • VMware Player )gratis( • VMWare Fusion • Parallels Desktop Sunday, July 3, 2011
  • 14. Entorno Productivo - sistema operativo Otra alternativa es tener un servidor dedicado o virtual aparte que se pueda montar con SMB / NFS Sunday, July 3, 2011
  • 15. Entorno Productivo - sistema operativo Los servidores virtuales tienen la ventaja que se pueden clonar para cuando se agrega un programador al equipo. Sunday, July 3, 2011
  • 16. Entorno Productivo - sistema operativo Jefes: ofrezcan al programador elegir su entorno de desarrollo. No hay nada más importante que sentirse cómodo y manejar bien las herramientas. Sunday, July 3, 2011
  • 17. Entorno Productivo - sistema operativo Regla #2 Usen lo que les sienta mejor y donde sean más productivos, pero prueben cosas nuevas. Sunday, July 3, 2011
  • 18. Entorno Productivo Stacks Sunday, July 3, 2011
  • 19. Entorno Productivo - Stacks Opciones disponibles • WAMP )Windows( • XAMP )Mac( • Zend Server CE )Win,Mac,Linux( • Liip PHP )Mac( http://php-osx.liip.ch/ Sunday, July 3, 2011
  • 20. Entorno Productivo Editor / IDE Sunday, July 3, 2011
  • 21. Entorno Productivo - Editor/IDE Opciones disponibles • Netbeans 7 PHP )gratis( • phpStorm 2.1 )$84 personal, $168 comercial, gratis para proyectos OS( • Eclipse )gratis( • Zend Studio 8 )$299( • Komodo IDE 6 )$295 sin soporte/upgrades( Textmate (Mac), vi/vim, emacs, notepad, etc. Sunday, July 3, 2011
  • 22. Entorno Productivo - Editor/IDE ¿Por qué un IDE? • integración con Xdebug / otros • breakpoints y watches • code completion • syntax highligher • PHPDoc • Twig! )phpStorm( • muchas más! Sunday, July 3, 2011
  • 23. Entorno Productivo - Editor/IDE ¿Por qué no un IDE? • generalmente requieren mucha memoria • curva de aprendizaje • familiarización con herramientas ya conocidas y dominadas • costo Sunday, July 3, 2011
  • 24. Entorno Productivo - Editor/IDE Jefes: ofrezcan al programador elegir su entorno de desarrollo. No hay nada más importante que sentirse cómodo y manejar bien las herramientas. Sunday, July 3, 2011
  • 25. Entorno Productivo Source Control Sunday, July 3, 2011
  • 26. Entorno Productivo - source control No importa que tan chico sea el proyecto, usen source control! Sunday, July 3, 2011
  • 27. Entorno Productivo - source control Opciones disponibles Git... Sunday, July 3, 2011
  • 28. Entorno Productivo - source control Opciones disponibles ok... también existen: • hg )mercurial( • SVN )subversion( • CVS )alguien se acuerda?( Sunday, July 3, 2011
  • 29. Entorno Productivo - source control Pero Git + github revolucionaron el mundo de proyectos open source Sunday, July 3, 2011
  • 30. Entorno Productivo Testing Sunday, July 3, 2011
  • 31. Entorno Productivo - Testing Opciones disponibles - Unit Tests • PHPUnit • SimpleTest Sunday, July 3, 2011
  • 32. Entorno Productivo - Testing Opciones disponibles - Continuous Integration • CruiseControl • phpUnderControl • Sismo • Jenkins http://jenkins-php.org/ Sunday, July 3, 2011
  • 33. Entorno Productivo - Testing Opciones disponibles - Frontend • Symfony2 • Selenium RC • Mink Sunday, July 3, 2011
  • 34. Entorno Productivo Debugging Sunday, July 3, 2011
  • 35. Entorno Productivo - debugging Opciones disponibles • Xdebug • breakpoints • stack traces • profiler • Zend Studio • FirePHP • print_r)( / var_dump)( / echo :-( Sunday, July 3, 2011
  • 36. Entorno Productivo - debugging configuración PHP • display_errors = 0 • error_log = /var/log/php.log • error_reporting = -1 Sunday, July 3, 2011
  • 37. Entorno Productivo Deployment Sunday, July 3, 2011
  • 38. Entorno Productivo - deployment Opciones disponibles • capistrano • capifony )symfony( • phing • git / svn / etc • rsync • ftp Sunday, July 3, 2011
  • 39. Entorno Productivo - deployment Capifony • Instalar capistrano ⁃ gem install capifony • Inicializamos el proyecto ⁃ capifony . • Configuramos el deployment con config/deploy.rb • Seteamos el servidor ⁃ cap deploy:setup • Hacemos el deployment ⁃ cap deploy • Y la próxima vez y la otra y la otra…: ⁃ cap deploy Sunday, July 3, 2011
  • 40. Entorno Productivo - deployment set :application, "sg11" set :domain, "servergrove.com" Capifony set :deploy_to, "/var/www/vhosts/sg11.servergrove.com" set :repository, "[email protected]:servergrove/sg11.git" set :scm, :git set :branch, "master" set :user, "deployer" ssh_options[:port] = 22123 ssh_options[:forward_agent] = true set :use_sudo, false role :web, "sg100.servergrove.com" # Your HTTP server, Apache/etc # directories that will be shared between all deployments set :shared_children, [app_path + "/logs", web_path + "/uploads"] set :update_vendors, false set :dump_assetic_assets, true Sunday, July 3, 2011
  • 41. Entorno Productivo - deployment Capifony `-- /var/www/vhosts/sg11.servergrove.com |-- current ! /var/www/vhosts/sg11.servergrove.com/releases/ 20100512131539 |-- releases |-- 20100512131539 |-- 20100509150741 `-- 20100509145325 `-- shared |-- log |-- config `-- databases.yml `-- web `-- uploads Sunday, July 3, 2011
  • 42. Entorno Productivo Tips Sunday, July 3, 2011
  • 43. Entorno Productivo - tips SSH • ssh-keygen -t dsa • ~/.ssh/config Host * ForwardAgent yes • ssh-add Ahora, cuando nos conectemos al servidor remoto y ejecutemos git pull, utilizará el key de nuestra computadora. Sunday, July 3, 2011
  • 44. Entorno Productivo - tips • El poder del archivo hosts • Unix: /etc/hosts • Windows: /Windows/System32/etc/hosts Permite acceder a un IP sin tener que cambiar el DNS Permite crear virtual hosts en el servidor local de desarrollo, ej: desymfony.local Sunday, July 3, 2011
  • 45. Entorno Productivo - tips El poder del archivo hosts 127.0.0.1 localhost symfony2rc2.local rockmongo.local mysql_admin.local maestro.local desymfony.local sg11.local sgcontrol2.local Apache Virtual Document Root UseCanonicalName Off VirtualDocumentRoot /Users/pgodel/Sites/%0/web <Location /> AllowOverride All Options +FollowSymLinks </Location> • ~/Sites/desymfony.local • ~/Sites/sg11.local •… Sunday, July 3, 2011
  • 46. Entorno Productivo - tips Aliases en BASH alias phplog="tail -f /var/log/apache2/php_errors.log" $ phplog Sunday, July 3, 2011
  • 47. Entorno Productivo - tips pbcopy & pbpaste )Mac( cat archivo.txt | pbcopy pbpaste > nuevo.txt Sunday, July 3, 2011
  • 48. Entorno Productivo ¿Preguntas? Sunday, July 3, 2011
  • 49. Entorno Productivo ¡MUCHAS GRACIAS! Slides: http://slideshare.net/pgodel Twitter: @pgodel IRC Freenode: pgodel Sunday, July 3, 2011