symfony2: framework para php5

79
Raúl Fraile Beneyto @raulfraile // #symfonyproweb Symfony2 Framework para PHP5

Upload: raul-fraile

Post on 05-Dec-2014

4.670 views

Category:

Real Estate


1 download

DESCRIPTION

Symfony2: Framework para PHP5

TRANSCRIPT

Page 1: Symfony2: Framework para PHP5

Raúl Fraile Beneyto@raulfraile // #symfonyproweb

Symfony2

Framework para PHP5

Page 2: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Índice

Symfony2: Framework para PHP5#symfonyproweb

✔ ¿Qué es un framework y por qué usarlo?✔ Frameworks PHP✔ ¿Por qué elegir Symfony?✔ Primeros pasos✔ Enlaces de interés✔ Preguntas

Page 3: Symfony2: Framework para PHP5

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✔ Estructura lógica (namespaces)✔ Estilo de programación

Ventaja: Si una nueva persona se une al proyecto, puede estar trabajando en él en muy poco tiempo.

Page 4: Symfony2: Framework para PHP5

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.✔ Varios entornos (desarrollo, test y producción).

Ventaja: Facilidad para repartir tareas. Por ejemplo,los diseñadores sólamente tocarían las vistas.

Page 5: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

¿Qué es un framework y por qué usarlo?

Symfony2: Framework para PHP5#symfonyproweb

✔ Modelo Vista Controlador integrado

Page 6: Symfony2: Framework para PHP5

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✔ Mapeado en clases (entidades) del esquema

relacional.✔ Fixtures con datos de prueba.✔ Optimización de consultas para el SGBD utilizado.

Page 7: Symfony2: Framework para PHP5

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.✔ Sabemos exactamente si es un error del modelo

(base de datos), de la vista o del controlador.✔ Al escribir menos código hay menos posibilidades

de generar nuevos bugs.

Page 8: Symfony2: Framework para PHP5

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.

✔ Herramientas como Ant o Phing ya hacen esa labor sin necesidad de un framework.

Page 9: Symfony2: Framework para PHP5

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.✔ Validaciones y tipos de datos predefinidos (fechas,

emails, URLs...).

Page 10: Symfony2: Framework para PHP5

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...

Page 11: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

¿Qué es un framework y por qué usarlo?

Symfony2: Framework para PHP5#symfonyproweb

✔ Otras ventajas✔ Tests integrados✔ Helpers✔ Caché✔ Plugins✔ Posibilidad de extenderlo y adaptarlo a tus

necesidades.

Page 12: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

¿Qué es un framework y por qué usarlo?

Symfony2: Framework para PHP5#symfonyproweb

Page 13: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

¿Qué es un framework y por qué usarlo?

Symfony2: Framework para PHP5#symfonyproweb

No reinventes la rueda

Page 14: Symfony2: Framework para PHP5

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”.✔ Añade una nueva capa, lo que puede suponer un

deterioro del rendimiento.● Si no lo dominas en profundidad, pueden llegar a

ser frustrantes.

Page 15: Symfony2: Framework para PHP5

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

Page 16: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Frameworks PHP

Symfony2: Framework para PHP5#symfonyproweb

Page 17: Symfony2: Framework para PHP5

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...

✔ Añadir seguridad. PHP, al ser tan “sencillo”, ha permitido que casi cualquiera haga aplicaciones web, muchas de ellas inseguras.

Page 18: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

¿Por qué elegir Symfony?

Symfony2: Framework para PHP5#symfonyproweb

¿Y por qué elegir...?

● Zend Framework● CakePHP● Codeigniter● Otro

Lo mejor si tienes tiempo: probar todos los que puedas

Page 19: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Framework para PHP creado por Fabien Potencier (Sensio Labs).

✔ Open-source.✔ Comunidad muy importante.✔ Excelente documentación y en diferentes

idiomas (en versiones estables).✔ Basado en buenas prácticas.

Page 20: Symfony2: Framework para PHP5

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).

✔ La última versión estable es la 1.4, que salió en Noviembre de 2009 y tendrá soporte hasta Noviembre 2012.

✔ La versión 2 se ha reescrito desde cero.

Page 21: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Actualmente se encuentra en la versión beta :

2.0.0BETA1

✔ 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.

Page 22: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Características principales:✔ Fácil de aprender.✔ Muy flexible con la introducción de bundles

(framework de frameworks).✔ Completo.✔ Rápido.✔ Utilización de estándares (PHPUnit, Zend_Cache,

Zend_Logger, PHP 5.3 autoload, Java JSR303).

Page 23: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Funcionamiento básico

Page 24: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Bundles✔ En Symfony2 TODO son bundles, incluido el propio

framework.✔ Un bundle es un “paquete” con una estructura

definida, que puede contener cualquier cosa e implementa una funcionalidad.

✔ Permite utilizar bundles de terceros y compartir tus propios bundles entre distintos proyectos.

Page 25: Symfony2: Framework para PHP5

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)– Monolog: sistema de logs– SwiftMailer: envío de mails– Twig: lenguage de plantillas

Page 26: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ PHP 5.3✔ Symfony2 NO FUNCIONA con versiones inferiores a

PHP 5.3.2.✔ Esta versión de PHP introdujo mejoras importantes

en el rendimiento (hasta un 20% de mejora) y la inclusión de namespaces.

Page 27: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Templates✔ Se utiliza el patrón “decorator”.✔ En Symfony se pueden crear las vistas en PHP o en

Twig.

http://www.twig-project.org/

Page 28: Symfony2: Framework para PHP5

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.

✔ La primera vez que se ejecuta se cachea en PHP puro, por lo que su rendimiento es bueno.

✔ Dispone de filtros.

Page 29: Symfony2: Framework para PHP5

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>

Page 30: Symfony2: Framework para PHP5

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("d/m/Y") }}</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>

Page 31: Symfony2: Framework para PHP5

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.

Page 32: Symfony2: Framework para PHP5

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

– Vim: http://jinja.pocoo.org/2/documentation/integration

– Textmate: https://github.com/Anomareh/PHP-Twig.tmbundle

Page 33: Symfony2: Framework para PHP5

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 "padre.html" %}

{% block title %}Blog Proweb: Contacto{% endblock %}

Padre Hijo

Page 34: Symfony2: Framework para PHP5

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/.✔ Symfony permite configuración en YAML, XML, PHP

o Annotations.✔ También permite una configuración distinta por

cada entorno de ejecución (dev, prod, test).

Page 35: Symfony2: Framework para PHP5

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✔ Limpiar caché / “Calentar” caché✔ Generar las entidades de la BD✔ Ejecutar una consulta SQL / DQL✔ ...

Page 36: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

Page 37: Symfony2: Framework para PHP5

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

doctrine:generate:entities

Page 38: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Base de datos: persistencianamespace Proweb\BlogBundle\Controller;

use Proweb\BlogBundle\Entity\Post;

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(); }...

Page 39: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Base de datos: consultaspublic 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();...

Page 40: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Routing✔ Se pueden definir las rutas en YAML, XML, PHP o

Annotations./** * @extra:Route("/post/{slug}-{id}", name="_post_view") * @extra:Template() */ public function showAction($slug, $id) {

[...] return array('post'=>$post); }

Page 41: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Formularios✔ Se han simplificado los formularios en esta versión

de Symfony.✔ Pueden utilizar el modelo para construir los

formularios, incluso adivinando los tipos de campos y validaciones.

Page 42: Symfony2: Framework para PHP5

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(), ));

Page 43: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Formularios: Vista

<form action="{{ path('store_product') }}" method="post" {{ form_enctype(form) }}> {{ form_widget(form) }}

<input type="submit" /></form>

Page 44: Symfony2: Framework para PHP5

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')); } }

Page 45: Symfony2: Framework para PHP5

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...

Page 46: Symfony2: Framework para PHP5

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.

✔ En Symfony2 desaparece como parte del framework => AdminBundle.

Page 47: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Tests● Symfony2 utiliza PHPUnit 3.5.11 (en esta versión

abandonan Lime).● 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

Page 48: Symfony2: Framework para PHP5

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...

Page 49: Symfony2: Framework para PHP5

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.

● Genera un código único por cada petición, por lo que se pueden recuperar posteriormente.

Page 50: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Debug: Profiler

Page 51: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Assetic✔ Gestor de assets (archivos JS, CSS, imágenes...)

para PHP 5.3.✔ Viene incluido como Bundle en Symfony.✔ 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...

Page 52: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Assetic: Algunas herramientas que acepta✔ Coffee Script: lenguaje más simple que JS.✔ LESS: mejora CSS con variables, funciones...✔ Google Closure Compiler: optimiza código JS.✔ JSMin: minify de código JS.✔ YUI Compressor: minify de JS y CSS.✔ OptiPNG: optimización de imágenes PNG.

Page 53: Symfony2: Framework para PHP5

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();

Page 54: Symfony2: Framework para PHP5

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.23.5x más rápido que Zend 1.105.5 más rápido que CakePHP

✔ Fabien Potencier define a Symfony2 como “Fast as Hell”

Page 55: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Rendimiento

Page 56: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Rendimiento: ¿Cómo lo consigue?✔ Utiliza PHP 5.3.2✔ Lazy-loading✔ Caché interna => archivos de configuración,

templates... todo se cachea.✔ HTTP Cache

Page 57: Symfony2: Framework para PHP5

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.

✔ Es necesario disponer de un proxy caché (p.ej. Varnish o Squid). Symfony lo lleva integrado.

Page 58: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Rendimiento: HTTP Cache

Page 59: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Rendimiento: HTTP Cache

Page 60: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Rendimiento: HTTP Cache

Page 61: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Symfony

Symfony2: Framework para PHP5#symfonyproweb

✔ Rendimiento: HTTP Cache

60' 10'1'

Page 62: Symfony2: Framework para PHP5

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="http://..." />

URL del fragmento

Page 63: Symfony2: Framework para PHP5

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)...

Page 64: Symfony2: Framework para PHP5

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” (siguiendoel estilo de Linux). Podrás descargar todo el framework, componentes sueltos o distribuciones preparadas paradeterminados tipos de proyectos.

La Standard Edition ofrece una configuración básica pordefecto y un bundle de prueba.

Page 65: Symfony2: Framework para PHP5

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/[...]

✔ Para comprobar que todo está correcto accedemos a:

http://blog_proweb/app_dev.php/

Page 66: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Primeros pasos: Blog del curso Proweb

Symfony2: Framework para PHP5#symfonyproweb

Page 67: Symfony2: Framework para PHP5

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:

Page 68: Symfony2: Framework para PHP5

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: localhostUsuario: user_blog_prowebClave: 123456Base de datos: blog_proweb

Page 69: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Primeros pasos: Blog del curso Proweb

Symfony2: Framework para PHP5#symfonyproweb

Page 70: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Primeros pasos: Blog del curso Proweb

Symfony2: Framework para PHP5#symfonyproweb

✔ Mapear BD en clases

Page 71: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Enlaces de interés

Symfony2: Framework para PHP5#symfonyproweb

symfony.com

Page 72: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Enlaces de interés

Symfony2: Framework para PHP5#symfonyproweb

symfony.com/blog

Page 73: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Enlaces de interés

Symfony2: Framework para PHP5#symfonyproweb

symfony.es

Page 74: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Enlaces de interés

Symfony2: Framework para PHP5#symfonyproweb

symfony2bundles.org

Page 75: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Enlaces de interés

Symfony2: Framework para PHP5#symfonyproweb

groups.google.com/group/symfony-users

Page 76: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Enlaces de interés

Symfony2: Framework para PHP5#symfonyproweb

silex-project.org

Page 77: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Enlaces de interés

Symfony2: Framework para PHP5#symfonyproweb

● Twitter:● @fabpot: Creador de Symfony● @javiereguiluz: Blog de symfony.com y admin de

symfony.es● @Kriswallsmith: Creador de Assetic● @desymfony: Jornadas Symfony en Castellón (1, 2

y 3 de julio)

Page 78: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

¡Muchas gracias!

Symfony2: Framework para PHP5#symfonyproweb

¿Preguntas?

Seguro que sí... ;)

Page 79: Symfony2: Framework para PHP5

Raúl Fraile Beneyto

Antes de acabar...

Symfony2: Framework para PHP5#symfonyproweb

http://twtpoll.com/aazwai