Your SlideShare is downloading. ×
  • Like
Symfony2: Framework para PHP5
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Symfony2: Framework para PHP5

  • 10,398 views
Published

Presentación utilizada para la charla sobre Symfony2 en el curso de Experto Universitario en Programación Web 2.0 (http://www.proweb.ua.es/)

Presentación utilizada para la charla sobre Symfony2 en el curso de Experto Universitario en Programación Web 2.0 (http://www.proweb.ua.es/)

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Muchas gracias por subir la presentación, ha sido muy instructiva.
    Are you sure you want to
    Your message goes here
  • Estoy preparando un proyecto de e-learning que se desarrollará con Symfony2 y os agradecería vuestro voto para poder financiarlo. Para votar: http://unclickuneuro.yuzz.org/tuweb_v4s2xd.html
    Are you sure you want to
    Your message goes here
  • Presentación de la charla sobre Symfony2 para el título de Experto Universitario en Programación Web (http://www.proweb.ua.es/)
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
10,398
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
269
Comments
3
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Raúl Fraile Beneyto @raulfraile // #symfonyproweb Symfony2 Framework para PHP5
  • 2. Raúl Fraile Beneyto Índice Symfony2: Framework para PHP5 #symfonyproweb
    • ¿Qué es un framework y por qué usarlo?
    • 3. Frameworks PHP
    • 4. ¿Por qué elegir Symfony?
    • 5. Primeros pasos
    • 6. Enlaces de interés
    • 7. Preguntas
  • 8. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • Organización del proyecto
      • Estructura de archivos y carpetas
      • 9. Estructura lógica (namespaces)
      • 10. Estilo de programación
    Ventaja: Si una nueva persona se une al proyecto, puede estar trabajando en él en muy poco tiempo.
  • 11. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • Modelo Vista Controlador integrado
      • Separación de la lógica de negocio y la presentación de la información.
      • 12. Varios entornos (desarrollo, test y producción).
    Ventaja: Facilidad para repartir tareas. Por ejemplo, los diseñadores sólamente tocarían las vistas.
  • 13. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • Modelo Vista Controlador integrado
  • 14. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • Bases de datos
      • Independencia del tipo de base de datos
      • 15. Mapeado en clases (entidades) del esquema relacional.
      • 16. Fixtures con datos de prueba.
      • 17. Optimización de consultas para el SGBD utilizado.
  • 18. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • Detección de bugs
      • Nos proporciona más información de la pila de errores o excepciones.
      • 19. Sabemos exactamente si es un error del modelo (base de datos), de la vista o del controlador.
      • 20. Al escribir menos código hay menos posibilidades de generar nuevos bugs.
  • 21. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • Publicación de la aplicación
      • Si proporciona algún método para publicar la aplicación en producción, evitamos olvidos al subir archivos o hacerlo en orden incorrecto.
      • 22. Herramientas como Ant o Phing ya hacen esa labor sin necesidad de un framework.
  • 23. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • Formularios
      • Generación automática de formularios a partir del modelo.
      • 24. Validaciones y tipos de datos predefinidos (fechas, emails, URLs...).
  • 25. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • Seguridad
      • Seguridad integrada ante ataques XSS (Cross-site scripting), CSRF (Cross Site Request Forgery), SQL Injection...
  • 26. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • Otras ventajas
      • Tests integrados
      • 27. Helpers
      • 28. Caché
      • 29. Plugins
      • 30. Posibilidad de extenderlo y adaptarlo a tus necesidades.
  • 31. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
  • 32. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb No reinventes la rueda
  • 33. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • También tiene algunas desventajas:
      • Te puede llegar a limitar en desarrollos algo “especiales”.
      • 34. Añade una nueva capa, lo que puede suponer un deterioro del rendimiento.
      • Si no lo dominas en profundidad, pueden llegar a ser frustrantes.
  • 35. Raúl Fraile Beneyto ¿Qué es un framework y por qué usarlo? Symfony2: Framework para PHP5 #symfonyproweb
    • En resumen: te hace la vida (un poco) más facil
  • 36. Raúl Fraile Beneyto Frameworks PHP Symfony2: Framework para PHP5 #symfonyproweb
  • 37. Raúl Fraile Beneyto Frameworks PHP Symfony2: Framework para PHP5 #symfonyproweb
    • Intentan suplir algunas de las carencias de PHP => organización, separación de lógica y presentación...
    • 38. Añadir seguridad. PHP, al ser tan “sencillo”, ha permitido que casi cualquiera haga aplicaciones web, muchas de ellas inseguras.
  • 39. Raúl Fraile Beneyto ¿Por qué elegir Symfony? Symfony2: Framework para PHP5 #symfonyproweb ¿Y por qué elegir...? Lo mejor si tienes tiempo: probar todos los que puedas
  • 43. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Framework para PHP creado por Fabien Potencier (Sensio Labs).
    • 44. Open-source.
    • 45. Comunidad muy importante.
    • 46. Excelente documentación y en diferentes idiomas (en versiones estables).
    • 47. Basado en buenas prácticas.
  • 48. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • La versión 1.0 salió en Enero de 2007 y requería PHP 5.0 + (a diferencia del resto de frameworks).
    • 49. La última versión estable es la 1.4, que salió en Noviembre de 2009 y tendrá soporte hasta Noviembre 2012.
    • 50. La versión 2 se ha reescrito desde cero.
  • 51. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Actualmente se encuentra en la versión beta :
    • 52. 2.0.0BETA1
    • 53. De aquí a la versión final habrán muy pocos cambios, se centrarán en resolución de bugs y acortar algunos métodos.
  • 54. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Características principales:
      • Fácil de aprender.
      • 55. Muy flexible con la introducción de bundles (framework de frameworks).
      • 56. Completo.
      • 57. Rápido.
      • 58. Utilización de estándares (PHPUnit, Zend_Cache, Zend_Logger, PHP 5.3 autoload, Java JSR303).
  • 59. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Funcionamiento básico
  • 60. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Bundles
      • En Symfony2 TODO son bundles, incluido el propio framework.
      • 61. Un bundle es un “paquete” con una estructura definida, que puede contener cualquier cosa e implementa una funcionalidad.
      • 62. Permite utilizar bundles de terceros y compartir tus propios bundles entre distintos proyectos.
  • 63. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Bundles
      • Algunos de los bundles incluidos en la Standard Edition:
        • Assetic: gestor de “assets” para PHP 5.3
        • Doctrine: ORM (object relational mapping)
        • 64. Monolog: sistema de logs
        • 65. SwiftMailer: envío de mails
        • 66. Twig: lenguage de plantillas
  • 67. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • PHP 5.3
      • Symfony2 NO FUNCIONA con versiones inferiores a PHP 5.3.2.
      • 68. Esta versión de PHP introdujo mejoras importantes en el rendimiento (hasta un 20% de mejora) y la inclusión de namespaces.
  • 69. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Templates
      • Se utiliza el patrón “decorator”.
      • 70. En Symfony se pueden crear las vistas en PHP o en Twig.
    http://www.twig-project.org/
  • 71. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Templates: Twig
      • Lenguage pensado para que gente sin conocimientos de programación (p.ej. Maquetadores), puedan utilizar los parámetros que se le pasan a la vista de una manera más sencilla.
      • 72. La primera vez que se ejecuta se cachea en PHP puro, por lo que su rendimiento es bueno.
      • 73. Dispone de filtros.
  • 74. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Templates: Twig
    <!DOCTYPE html> <html> <head> <title>Post: {{ titulo }} </title> </head> <body> <h1> {{ titulo }} </h1> <div> {{ contenido }} </div> <ul> {% for item in comentarios %} <li>{{ comentario.autor }}: {{ comentario.texto }}</li> {% endfor %} </ul> </body> </html> <!DOCTYPE html> <html> <head> <title>Post: <?php echo $titulo; ?></title> </head> <body> <h1><?php echo $titulo; ?></h1> <div><?php echo $contenido; ?></div> <ul> <?php foreach ($comentarios as $item){ ?> <li><?php echo $comentario.autor; ?></li> <?php } ?> </ul> </body> </html>
  • 75. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Templates: Twig
    <!DOCTYPE html> <html> <head> <title>Post: {{ titulo }} </title> </head> <body> <h1> {{ titulo | upper }} </h1> <h2>Fecha: {{ fecha | date(&quot;d/m/Y&quot;) }} </h2> <div> {{ contenido }} </div> </body> </html> <!DOCTYPE html> <html> <head> <title>Post: <?php echo $titulo; ?></title> </head> <body> <h1><?php echo strtoupper($titulo); ?></h1> <h2>Fecha: <?php echo date('d/m/Y', $fecha); ?></h2> <div><?php echo $contenido; ?></div> </body> </html>
  • 76. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Templates: Twig
      • Algunos filtros que se pueden utilizar:
        • date, replace, url_encode, json_encode, title, capitalize, upper, lower, striptags, join, reverse, length...
      • Funciones integradas
        • divisibleby, none, even, odd, defined, empty...
      • Puedes crear tus propias extensiones.
  • 77. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Templates: Twig
      • Se puede integrar en algunos IDEs
        • PHPStorm 2.1+ tiene soporte nativo.
        • Netbeans: https://github.com/blogsh/Twig-netbeans
        • 78. Vim: http://jinja.pocoo.org/2/documentation/integration
        • 79. Textmate: https://github.com/Anomareh/PHP-Twig.tmbundle
  • 80. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Templates: Twig
      • Utilizando el patrón “decorator”, el template “padre” deja huecos para que puedan ser rellenados por el template “hijo”.
    {% block title %} Blog Proweb {% endblock %} {% extends &quot;padre.html&quot; %} {% block title %}Blog Proweb: Contacto{% endblock %} Padre Hijo
  • 81. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Configuración
      • La configuración global de la aplicación se encuentra en /app/config/.
      • 82. Symfony permite configuración en YAML, XML, PHP o Annotations.
      • 83. También permite una configuración distinta por cada entorno de ejecución (dev, prod, test).
  • 84. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Consola
      • Symfony dispone de una consola de comandos para poder realizar algunas de las tareas más comunes:
        • Crear bundles
        • 85. Limpiar caché / “Calentar” caché
        • 86. Generar las entidades de la BD
        • 87. Ejecutar una consulta SQL / DQL
        • 88. ...
  • 89. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
  • 90. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Base de datos
      • Se utiliza un ORM: Doctrine o Propel.
      • Doctrine mapea la base de datos relacional en clases (entidades). Incluso crea los getters/setters. doctrine:mapping:import
      • 91. doctrine:generate:entities
  • 92. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Base de datos: persistencia
    namespace ProwebBlogBundleController; use ProwebBlogBundleEntityPost; class PostController extends Controller { public function createAction() { $post = new Post(); $post->setTitle('Charla de Symfony'); $post->setContent('<p>La charla sobre Symfony será el 13/05.</p>'); $post->setSlug('charla-symfony'); $em = $this->get('doctrine.orm.entity_manager'); $em->persist($post); $em->flush(); } ...
  • 93. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Base de datos: consultas
    public function showAction($id) { $em = $this->get('doctrine.orm.entity_manager'); $qb = $em->createQueryBuilder(); $qb->select('p') ->from('ProwebBlogBundle:Post','p') ->where('p.id = ?2'); $query = $qb->getQuery(); $query->setParameter(1, $id); $result = $query->getSingleResult(); ...
  • 94. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Routing
      • Se pueden definir las rutas en YAML, XML, PHP o Annotations.
    /** * @extra:Route(&quot;/post/{slug}-{id}&quot;, name=&quot;_post_view&quot;) * @extra:Template() */ public function showAction( $slug, $id ) { [...] return array('post'=>$post); }
  • 95. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Formularios
      • Se han simplificado los formularios en esta versión de Symfony.
      • 96. Pueden utilizar el modelo para construir los formularios, incluso adivinando los tipos de campos y validaciones.
  • 97. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Formularios: Controlador
    $product = new Product(); $product->name = 'Test product'; $product->setPrice('50.00'); $form = $this->get('form.factory') ->createBuilder('form', $product) ->add('name', 'text') ->add('price', 'money', array('currency' => 'USD')) ->getForm(); return $this->render('AcmeStoreBundle:Default:index.html.twig', array( 'form' => $form->createView() , ));
  • 98. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Formularios: Vista
    <form action=&quot;{{ path('store_product') }}&quot; method=&quot;post&quot; {{ form_enctype(form) }}> {{ form_widget(form) }} <input type=&quot;submit&quot; /> </form>
  • 99. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Formularios: Recoger datos
    $request = $this->get('request'); if ($request->getMethod() == 'POST') { $form->bindRequest($request); if ($form->isValid()) { // se guardaría en base de datos return $this->redirect($this->generateUrl('store_product_success')); } }
  • 100. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Formularios: campos predefinidos
      • birthday, checkbox, choice, collection, country, csrf, datetime, date, entity, file, form, hidden, integer, language, money, number, password, percent, radio, repeated, textarea, text, time, timezone, url...
  • 101. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Admin Generator
      • En las versiones anteriores de Symfony, había un generador de “backend”, que permitía crear paneles de administración en minutos, basándose en la información de la base de datos y muy configurable.
      • 102. En Symfony2 desaparece como parte del framework => AdminBundle.
  • 103. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Tests
      • Symfony2 utiliza PHPUnit 3.5.11 (en esta versión abandonan Lime).
      • 104. Cada bundle puede tener una carpeta Tests con todos los tests unitarios. Está configurado para que busque los tests en estas carpetas al hacer: phpunit -c app/
    @s_bergmann
  • 105. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Debug
      • Symfony2 proporciona una barra de herramientas con información muy útil: entorno de ejecución en el que nos encontramos, controlador que se ha ejecutado, logs, milisegundos, kb, consultas a la base de datos...
  • 106. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Debug
      • También disponemos de un Profiler que almacena mucha información sobre la petición. Es una ampliación de la barra de herramientas.
      • 107. Genera un código único por cada petición, por lo que se pueden recuperar posteriormente.
  • 108. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Debug: Profiler
  • 109. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Assetic
      • Gestor de assets (archivos JS, CSS, imágenes...) para PHP 5.3.
      • 110. Viene incluido como Bundle en Symfony.
      • 111. Permite utilizar herramientas externas (la mayoría escritas en otros lenguajes como Java o C) para combinar varios archivos JS o CSS, hacer minify, optimizar imágenes, utilizar preprocesadores CSS, optimización de código JS...
  • 112. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Assetic: Algunas herramientas que acepta
      • Coffee Script: lenguaje más simple que JS.
      • 113. LESS: mejora CSS con variables, funciones...
      • 114. Google Closure Compiler: optimiza código JS.
      • 115. JSMin: minify de código JS.
      • 116. YUI Compressor: minify de JS y CSS.
      • 117. OptiPNG: optimización de imágenes PNG.
  • 118. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Assetic: Ejemplo con YUI Compressor
    $core = new AssetCollection( array( new FileAsset('/js/jquery.js'), new GlobalAsset('/js/blog/*.js'); ), array( new YuiCompressorJsFilter('/js/yui.jar'); ) ); $core->load(); header('Content-type: text/javascript'); echo $core->dump();
  • 119. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Rendimiento
      • Según algunos benchmarks, Symfony2 es... 2x más rápido que symfony 1.4.2 3.5x más rápido que Zend 1.10 5.5 más rápido que CakePHP
      • 120. Fabien Potencier define a Symfony2 como “Fast as Hell”
  • 121. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Rendimiento
  • 122. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Rendimiento: ¿Cómo lo consigue?
      • Utiliza PHP 5.3.2
      • 123. Lazy-loading
      • 124. Caché interna => archivos de configuración, templates... todo se cachea.
      • 125. HTTP Cache
  • 126. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Rendimiento: HTTP Cache
      • Se basa en la especificación HTTP/1.1 y el uso de ESI (Edge Side Includes), que permite cachear “trozos” de una misma página en tiempos distintos.
      • 127. Es necesario disponer de un proxy caché (p.ej. Varnish o Squid). Symfony lo lleva integrado.
  • 128. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Rendimiento: HTTP Cache
  • 129. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Rendimiento: HTTP Cache
  • 130. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Rendimiento: HTTP Cache
  • 131. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Rendimiento: HTTP Cache
    60' 10' 1'
  • 132. Raúl Fraile Beneyto Symfony Symfony2: Framework para PHP5 #symfonyproweb
    • Rendimiento: HTTP Cache
      • Con Symfony2 podemos simular la comunicación “proxy cache <=> http server”, utilizando ESI.
    $this->render('NoticiasBundle:Default:destacadas.html.twig', array('noticias'=>$noticias), array('standalone' => true) ); <esi:include src=&quot;http://...&quot; /> URL del fragmento
  • 133. Raúl Fraile Beneyto Primeros pasos Symfony2: Framework para PHP5 #symfonyproweb
    • Hay que tener en cuenta Symfony se encuentra actualmente en fase beta, pueden cambiar algunas cosas, hay bugs, la documentación es incompleta (y errónea en algunos casos)...
  • 134. Raúl Fraile Beneyto Primeros pasos: Blog del curso Proweb Symfony2: Framework para PHP5 #symfonyproweb
    • Descargar “Symfony Standard Edition” de http://symfony.com/download.
    Symfony va a disponer de “distribuciones” (siguiendo el estilo de Linux). Podrás descargar todo el framework, componentes sueltos o distribuciones preparadas para determinados tipos de proyectos. La Standard Edition ofrece una configuración básica por defecto y un bundle de prueba.
  • 135. Raúl Fraile Beneyto Primeros pasos: Blog del curso Proweb Symfony2: Framework para PHP5 #symfonyproweb
    • Configurar Apache para que apunte a la carpeta “web”. VirtualHost para acceder más rápidamente: http://blog_proweb/[...]
    • 136. Para comprobar que todo está correcto accedemos a: http://blog_proweb/app_dev.php/
  • 137. Raúl Fraile Beneyto Primeros pasos: Blog del curso Proweb Symfony2: Framework para PHP5 #symfonyproweb
  • 138. Raúl Fraile Beneyto Primeros pasos: Blog del curso Proweb Symfony2: Framework para PHP5 #symfonyproweb
    • Crear bundle:
    • Se carga el namespace en /app/autoload.php y se registra en /app/AppKernel.php:
    • Crear bundle:
  • 139. Raúl Fraile Beneyto Primeros pasos: Blog del curso Proweb Symfony2: Framework para PHP5 #symfonyproweb
    • La configuración de la base de datos podemos hacerla manualmente (editando el archivo /app/config/parameters.ini) o de forma guiada: http://blog_proweb/app_dev.php/_configurator/
    Servidor: localhost Usuario: user_blog_proweb Clave: 123456 Base de datos: blog_proweb
  • 140. Raúl Fraile Beneyto Primeros pasos: Blog del curso Proweb Symfony2: Framework para PHP5 #symfonyproweb
  • 141. Raúl Fraile Beneyto Primeros pasos: Blog del curso Proweb Symfony2: Framework para PHP5 #symfonyproweb
    • Mapear BD en clases
  • 142. Raúl Fraile Beneyto Enlaces de interés Symfony2: Framework para PHP5 #symfonyproweb symfony.com
  • 143. Raúl Fraile Beneyto Enlaces de interés Symfony2: Framework para PHP5 #symfonyproweb symfony.com/blog
  • 144. Raúl Fraile Beneyto Enlaces de interés Symfony2: Framework para PHP5 #symfonyproweb symfony.es
  • 145. Raúl Fraile Beneyto Enlaces de interés Symfony2: Framework para PHP5 #symfonyproweb symfony2bundles.org
  • 146. Raúl Fraile Beneyto Enlaces de interés Symfony2: Framework para PHP5 #symfonyproweb groups.google.com/group/symfony-users
  • 147. Raúl Fraile Beneyto Enlaces de interés Symfony2: Framework para PHP5 #symfonyproweb silex-project.org
  • 148. Raúl Fraile Beneyto Enlaces de interés Symfony2: Framework para PHP5 #symfonyproweb
    • Twitter:
      • @fabpot: Creador de Symfony
      • 149. @javiereguiluz: Blog de symfony.com y admin de symfony.es
      • 150. @Kriswallsmith: Creador de Assetic
      • 151. @desymfony: Jornadas Symfony en Castellón (1, 2 y 3 de julio)
  • 152. Raúl Fraile Beneyto ¡Muchas gracias! Symfony2: Framework para PHP5 #symfonyproweb ¿Preguntas? Seguro que sí... ;)
  • 153. Raúl Fraile Beneyto Antes de acabar... Symfony2: Framework para PHP5 #symfonyproweb http://twtpoll.com/aazwai