Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Plantillajornadasversion2 100708010347-phpapp01

475 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Plantillajornadasversion2 100708010347-phpapp01

  1. 1. Castellón - 5 y 6 de Julio 2010 – Universitat Jaume I organizan patrocinan colaboran Jornadas Symfony 5 y 6 de julio 2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony
  2. 2. Introducción a Symfony Alfonso Alba, nerium.es Jornadas Symfony 5 y 6 de julio 2010 Universitat Jaume I, Castellón http://decharlas.uji.es/symfony
  3. 3. ¿Os parece fácil desayunar esto?
  4. 4. ¿Porqué utilizo symfony? <ul><li> Creación de base de datos </li></ul><ul><li> Conexión a base datos </li></ul><ul><li> Autenticación </li></ul><ul><li> Validación de datos de entrada </li></ul><ul><li> Paginación de listados </li></ul><ul><li> Defensa contra ataques XSS, CSRF, SQL Injection , etc. </li></ul><ul><li> Realización de tests unitarios y funcionales </li></ul><ul><li> Páginas de administración del sitio web </li></ul>Lista de tareas que hacer al ejecutar un proyecto
  5. 5. ¿Cómo hacemos para ahorrarnos tiempo en estas tareas? Nos creamos nuestro propio framework includes/ auth.inc.php db.inc.php validador.inc.php ... <?php include includes/*.php ... ?>
  6. 7. ¿Qué consecuencias tuvo para mi empezar a usar symfony? <ul><li>1. Tuve que dedicarle tiempo a aprender a usar el framework. </li></ul><ul><li>2. Tuve que aprender a hacer las cosas de otra manera: </li></ul><ul><li>“ the symfony way” </li></ul>
  7. 8. ¿Qué supone usar symfony? <ul><li>Cambiar tu manera de hacer las cosas </li></ul><ul><ul><li>Tienes que ceñirte a estructuras de directorios bien definidas </li></ul></ul>
  8. 9. Año 2010 Dirigir un equipo de 15 personas
  9. 10. Año 2010 Trabajando en equipo <ul><li> Es más fácil introducir nuevas personas en el equipo </li></ul><ul><li> Es más fácil cambiar a las personas de proyecto porque todos los proyectos se hacen siguiendo los mismos principios </li></ul><ul><li> Nadie tiene que mantener el framework </li></ul><ul><li> Es mucho más fácil mantener las aplicaciones </li></ul><ul><li> Nos permite centrarnos en lo que realmente importa: </li></ul><ul><li>que la aplicación haga lo que nos pide el cliente </li></ul><ul><li> Reutilización de código </li></ul><ul><li> Buenas prácticas: TDD, DRY, etc. </li></ul><ul><li> El trabajar en equipo suaviza sustancialmente la curva de aprendizaje </li></ul>
  10. 11. ¿Qué más nos ofrece symfony? <ul><li><?php // Conectamos a la base de datos y hacemos una consulta </li></ul><ul><li>$link = mysql_connect('localhost', 'myuser', 'mypassword'); </li></ul><ul><li>mysql_select_db('blog_db', $link); </li></ul><ul><li>$result = mysql_query('SELECT fecha, titulo FROM post', $link); </li></ul><ul><li>?> </li></ul><ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><title>Entradas del blog</title> </li></ul><ul><li></head> </li></ul><ul><li><body> </li></ul><ul><li><h1>Entradas del blog</h1> </li></ul><ul><li><table> </li></ul><ul><li><tr><th>Date</th><th>Title</th></tr> </li></ul><ul><li><?php // Impresión de los resultados en HTML </li></ul><ul><li>while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { </li></ul><ul><li>echo &quot;t<tr>n&quot;; </li></ul><ul><li>printf(&quot;tt<td> %s </td>n&quot;, $row['date']); </li></ul><ul><li>printf(&quot;tt<td> %s </td>n&quot;, $row['title']); </li></ul><ul><li>echo &quot;t</tr>n&quot;; </li></ul><ul><li>}?> </li></ul><ul><li></table> </li></ul><ul><li></body> </li></ul><ul><li></html> </li></ul><ul><li><?php mysql_close($link); ?> </li></ul>
  11. 12. ¿Qué más nos ofrece symfony? <ul><li>Separación MVC </li></ul>
  12. 13. ¿Qué más nos ofrece symfony? <ul><li>Controlador </li></ul><ul><li><?php </li></ul><ul><li>  </li></ul><ul><li>class weblogActions extends sfActions </li></ul><ul><li>{ </li></ul><ul><li>public function executeList() </li></ul><ul><li>{ </li></ul><ul><li>$this->posts = PostPeer::doSelect(new Criteria()); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>Vista </li></ul><ul><li><?php slot('title', 'List of Posts') ?> </li></ul><ul><li><h1>Entradas del Blog</h1> </li></ul><ul><li><table> </li></ul><ul><li><tr><th>Fecha</th><th>Título</th></tr> </li></ul><ul><li><?php foreach ($posts as $post): ?> </li></ul><ul><li><tr> </li></ul><ul><li><td><?php echo $post->getFecha() ?></td> </li></ul><ul><li><td><?php echo $post->getTitulo() ?></td> </li></ul><ul><li></tr> </li></ul><ul><li><?php endforeach; ?> </li></ul><ul><li></table> </li></ul>
  13. 14. ¿Utilizo symfony para todo? NO ...pero casi
  14. 15. Gracias Gracias [email_address] @neriumtec www.nerium.es Jornadas Symfony http://decharlas.uji.es/symfony

×