Upload
joseluis-patrick-laso
View
115
Download
0
Tags:
Embed Size (px)
Citation preview
Joseluis Laso WinterHack VLC 2015
Joseluis Laso (aka Patrick)Introducción a Symfony
Hashtag#winterhackvl
c
Twitter@jl_laso
Joseluis Laso WinterHack VLC 2015
Sobre mí
● Autodidacta● Web developer addict● Symfony evangelist● Miembro activo de PHPValencia● Padre de dos hijos maravillosos● Ponente de PHP y Symfony● @jl_laso
Joseluis Laso WinterHack VLC 2015
Joseluis Laso WinterHack VLC 2015
A la venta Próximamente
http://goo.gl/fzMNaE http://goo.gl/IK9hHZJoseluis Laso WinterHack VLC 2015
Autor de estos títulos
Joseluis Laso WinterHack VLC 2015
He participado en varios proyectos Symfony de
renombre:● www.tradukoj.com● www.zeendo.com
Joseluis Laso WinterHack VLC 2015
Joseluis Laso WinterHack VLC 2015
Symfony es un completo framework diseñado para optimizar el desarrollo de las aplicaciones web basado en el patrón Modelo Vista Controlador.
Fuente: wikipedia
Joseluis Laso WinterHack VLC 2015
Joseluis Laso WinterHack VLC 2015
Para que un sistema desarrollado en Symfony2 se ejecute correctamente necesita un servidor dedicado* con un mínimo de RAM y CPU, pero sobre todo con acceso SSH
*Algunos servidores virtualizados han mostrado un comportamiento aceptable. En ningún caso un hosting compartido.
Requisitos hardware
Joseluis Laso WinterHack VLC 2015
Joseluis Laso WinterHack VLC 2015
Conocimiento alto de PHP OO*, patrones de diseño, buenas prácticas, código limpio, PSR2, composer, git y espíritu colaborativo.
*Orientado a objetos.
Requisitos desarrollador
Joseluis Laso WinterHack VLC 2015
Joseluis Laso WinterHack VLC 2015
Por tanto:Symfony2 es ideal para
startups que quieran empezar con una muy buena base
tecnológica.Joseluis Laso WinterHack VLC 2015
Yo no usaría Symfony2 para:● una página personal● un pequeño blog● cualquier desarrollo que deba estar
alojado en un servidor compartido.● para un MVP
Joseluis Laso WinterHack VLC 2015
HomogéneoLos desarrolladores de Symfony2 tienen
un perfil muy similar.Soporte
Sensiolabs tiene unos planes de
soporte muy ventajosos.
FuturoUn framework vivo,
con un roadmap bien definido. Y
proyectos fuertes apostando por él.
BundlesUn ecosistema
amplio de bundles, con soluciones para
casi todo.
Ventajas de tener un desarrollo en Symfony2
A continuación se exponen unos comentarios “dramatizados” con mi opinión personal acerca del uso de un framework como Symfony2 o de su
nivel.
Joseluis Laso WinterHack VLC 2015
¿Por qué aprender a programar en Symfony?
Joseluis Laso WinterHack VLC 2015
Joseluis Laso WinterHack VLC 2015
AprendizajeLa curva de
aprendizaje es alta pero compensa el
esfuerzo.
CertificaciónTus conocimientos
pueden ser certificados por la empresa creadora
de Symfony.
En los foros activos puedes participar para preguntar o
responder, adquiriendo
reputación online.
Comunidad
TrabajoEl trabajo está prácticamente
asegurado, y con sueldos >=21K
¿Por qué aprender a programar en Symfony2?
Joseluis Laso WinterHack VLC 2015
Te gusta trabajar sólo y no compartir
Te da igual cómo quede el código
mientras funcione
No lo aprendas si ...
No aceptas que nadie revise o
critique tu código.
Prefieres ser artesano: guisarlo y comerlo tú mismo
No tienes ningún interés en aprender a mejorar
profesionalmente
Joseluis Laso WinterHack VLC 2015
No lo implementes en tu desarrollo si ...
Joseluis Laso WinterHack VLC 2015
Joseluis Laso WinterHack VLC 2015
Sólo quieres resultados y te da
igual la calidad del código. Prima la velocidad
de imnplantación a hacer las cosas
bien.
No lo implementes en tu desarrollo si ...
Te da igual si el código es
mantenible o no.
Joseluis Laso WinterHack VLC 2015
class HelloController
{
/** * @Route("/demo/{name}", name="hello_demo") * @Template() */ public function demoAction($name) {
$em = $this->container->get("doctrine")->getEntityManager(); $item => $em->getRepository("Item")->findOneBy(array("name" => $name));
return array( "name" => $name, "item" => $item, );
}}
Joseluis Laso WinterHack VLC 2015
class HelloController
{
/** * @Route("/demo/{name}", name="hello_demo") * @Template() */ public function demoAction($name) {
$em = $this->container->get("doctrine")->getEntityManager(); $item => $em->getRepository("Item")->findOneBy(array("name" => $name));
return array( "name" => $name, "item" => $item, );
}}
Anotaciones que le indican a Symfony2 que este método va a atender la ruta /demo/lo-que-sea y que se mostrará el resultado usando una plantilla twig con el mismo nombre que el método.
Joseluis Laso WinterHack VLC 2015
class HelloController
{
/** * @Route("/demo/{name}", name="hello_demo") * @Template() */ public function demoAction($name) {
$em = $this->container->get("doctrine")->getEntityManager(); $item => $em->getRepository("Item")->findOneBy(array("name" => $name));
return array( "name" => $name, "item" => $item, );
}}
Contenedor de dependencias que suministra los servicios por su nombre.
ORM Doctrine para acceso a la Base de datos.
Joseluis Laso WinterHack VLC 2015
class HelloController
{
/** * @Route("/demo/{name}", name="hello_demo") * @Template() */ public function demoAction($name) {
$em = $this->container->get("doctrine")->getEntityManager(); $item => $em->getRepository("Item")->findOneBy(array("name" => $name));
return array( "name" => $name, "item" => $item, );
}}
Acceso a los datos mediante repositorios con funciones primitivas o definidas.
Paso de parámetros a la plantilla de una manera intuitiva.
Joseluis Laso WinterHack VLC 2015
{% extends '::base.html.twig' %}
{% block stylesheets %} {{ parent() }} <style type="text/css">.sidebar { padding: 9px 0;}</style>{% endblock stylesheets %}
{% block sidebar %}<div class=”sidebar”> {{ item|raw }}</div>{% endblock sidebar %}
{% block content %} {% set fullName = ‘Mr ’ ~ name %} Hello {{ fullName }} {% endblock content %}
Joseluis Laso WinterHack VLC 2015
{% extends '::base.html.twig' %}
{% block stylesheets %} {{ parent() }} <style type="text/css">.sidebar { padding: 9px 0;}</style>{% endblock stylesheets %}
{% block sidebar %}<div class=”sidebar”> {{ item|raw }}</div>{% endblock sidebar %}
{% block content %} {% set fullName = ‘Mr ’ ~ name %} Hello {{ fullName }} {% endblock content %}
Lenguaje de plantillas muy intuitivo, con herencia.
Joseluis Laso WinterHack VLC 2015
{% extends '::base.html.twig' %}
{% block stylesheets %} {{ parent() }} <style type="text/css">.sidebar { padding: 9px 0;}</style>{% endblock stylesheets %}
{% block sidebar %}<div class=”sidebar”> {{ item|raw }}</div>{% endblock sidebar %}
{% block content %} {% set fullName = ‘Mr ’ ~ name %} Hello {{ fullName }} {% endblock content %}
Los bloques facilitan la inserción de nuevo contenido o alterar el existente
Joseluis Laso WinterHack VLC 2015
{% extends '::base.html.twig' %}
{% block stylesheets %} {{ parent() }} <style type="text/css">.sidebar { padding: 9px 0;}</style>{% endblock stylesheets %}
{% block sidebar %}<div class=”sidebar”> {{ item|raw }}</div>{% endblock sidebar %}
{% block content %} {% set fullName = ‘Mr ’ ~ name %} Hello {{ fullName }} {% endblock content %}
Sintaxis poco intrusiva y simétrica
Joseluis Laso WinterHack VLC 2015
{% extends '::base.html.twig' %}
{% block stylesheets %} {{ parent() }} <style type="text/css">.sidebar { padding: 9px 0;}</style>{% endblock stylesheets %}
{% block sidebar %}<div class=”sidebar”> {{ item|raw }}</div>{% endblock sidebar %}
{% block content %} {% set fullName = ‘Mr ’ ~ name %} Hello {{ fullName }} {% endblock content %}
Funciones y filtros nativos y extensibles por código
Joseluis Laso WinterHack VLC 2015
{% extends '::base.html.twig' %}
{% block stylesheets %} {{ parent() }} <style type="text/css">.sidebar { padding: 9px 0;}</style>{% endblock stylesheets %}
{% block sidebar %}<div class=”sidebar”> {{ item|raw }}</div>{% endblock sidebar %}
{% block content %} {% set fullName = ‘Mr ’ ~ name %} Hello {{ fullName }} {% endblock content %}
órdenes que permiten automatizar, como for, set, if, etc ...
Joseluis Laso WinterHack VLC 2015
Es rara la semana en la que no recibo una oferta de trabajo relacionada con
Symfony.
Joseluis Laso WinterHack VLC 2015
Joseluis Laso WinterHack VLC 2015
La documentación oficial está bien organizada y accesible:● http://symfony.com/doc/current/index.html
Material para aprender por tu cuenta:● http://librosweb.es/libro/symfony_2_x/● http://librosweb.es/libro/buenas_practicas_symfony/● http://symfony.es/libro/● https://leanpub.com/un-ano-con-symfony
Cursos online● http://www.alfa9.com/formacion/cursos-symfony
Presencialmente en Valencia:● http://www.cursosmk.com/programacion/iniciacion-symfony/● http://www.cursosmk.com/programacion/symfony-avanzado/
Joseluis Laso WinterHack VLC 2015
Joseluis Laso WinterHack VLC 2015
Muchas gracias
Joseluis Laso (Patrick)
@jl_laso
http://www.joseluislaso.es
http://www.patricklaso.com