SlideShare a Scribd company logo
1 of 138
Download to read offline
Twig, cuando Django
encontró a Symfony
Javier Eguiluz



JORNADAS SYMFONY 2011 1-3 JULIO, CASTELLÓN DESYMFONY.COM
Patrocinadores   Patrocinadores   Patrocinadores
Colaboradores      BRONCE            PLATA        PLATINO y ORO    JORNADAS SYMFONY 2011 están patrocinadas por
importante
Algunas partes de esta presentación
no se pueden entender bien sin ver
el vídeo de su impartición.

Puedes acceder al vídeo en
http://bit.ly/sf-tutorial-twig
¿Qué es Twig?
« template engine »
<mensaje>
Hola         <p>Hola
               <contenido>
{ nombre }       Hola José
             José</p>
                 ...
...          ......
...          ...
               </contenido>
             </mensaje>
template engine
        +
template language
twig se puede usar en




               Cualquier
Symfony2     proyecto PHP
Twig para
maquetadores
{# ... #}
{% ... %}
{{ ... }}
{*   *}   <%#   %>   {#   #}
{     }   <%    %>   {%   %}
{$    }   <%=   %>   {{   }}
{% if usuario is defined %}
 Hola {{ usuario.nombre }}
 hoy es {{ 'now' | date('d/m/Y') }}
{% endif %}
Mostrar
información
<p> Hola {{ usuario }}
Tienes {{ edad }} años y vives en
{{ ciudad }} </p>
<p> Hola {{ usuario.nombre }}
Tienes {{ usuario.edad }} años y
vives en {{ usuario.ciudad }} </p>
Modificar
información
{{ descripcion }}
{{ descripcion | striptags }}
{{ etiquetas | join(", ") }}
Hay {{ articulos | length }}
         artículos
{{ titular | striptags | upper }}
<strong>Lorem ipsum</strong>
dolor sit <em>amet</em>
{{ biografia }}
&lt;strong&gt;Lorem ipsum&lt;/
strong&gt; dolor sit
&lt;em&gt;amet&lt;/em&gt;
{{ biografia | raw }}
Espacios
en blanco
<ul>
  <li>
     <a ... >XXX</a>
  </li>

  <li>
     ...
{% spaceless %}
{% spaceless %}
<ul>
  <li>
     <a ... >XXX</a>
  </li>

  <li>
     ...
{% endspaceless %}
<ul><li><a ... >XXX</a></li><li>...
Herencia
de plantillas
« Lo más poderoso
     de Twig »

 Fuente: documentación oficial de Twig
layout.twig
layout.twig




portada.twig          contacto.twig
<html> <head> ... </head>
<body>
  <h1>                </h1>



</body></html>
layout.twig
<html> <head> ... </head>
<body>
  <h1>
   {% block titulo %}{% endblock %}
  </h1>

  {% block cuerpo %}{% endblock %}
</body></html>
portada.twig
{% extends "layout.twig" %}
{% block titulo %}
 Portada
{% endblock %}
{% block cuerpo %}
 Lorem ipsum ...
{% endblock %}
contacto.twig
{% extends "layout.twig" %}
{% block titulo %}
 Contacta con nosotros
{% endblock %}
{% block cuerpo %}
 Duis aute irure dolor in ...
{% endblock %}
1
{% block titulo %}
 Portada
{% endblock %}

{% block titulo "Portada" %}
contacto.twig                   2
{% extends "layout.twig" %}
{% block cuerpo %}
 Duis aute irure dolor in ...
{% endblock %}
layout.twig               3
   ...
   <h1>
     {% block titulo %}
       Lorem Ipsum
     {% endblock %}
   </h1>
   ...
Razones para
   usar Twig
1. Muy fácil de aprender (intuitivo)
2. Suficiente / completo
3. Plantillas concisas y bonitas
Twig para
programadores
Variables
{{ usuario.nombre }}
1.   $usuario["nombre"]
2.   $usuario!>nombre
3.   $usuario!>nombre()
4.   $usuario!>getNombre()
5.   $usuario!>isNombre()
6.   null
{{ usuario.nombre }}
{{ usuario["nombre"] }}
{% set var = "Mi variable" %}
{% set ivas = [4, 8, 18] %}
{%
set nombreCompleto =
 nombre ~ apellidos
%}
{% set perfil %}
  {{ apellidos }}, {{ nombre }}
  {{ edad }} años
  Página: {{ url }}
{% endset %}
Espacios
en blanco
{% spaceless %}
{{ descripcion }}
{{! descripcion }}
{{ descripcion !}}
{{! descripcion !}}
{{ descripcion }}
{{! descripcion }} ltrim(descripcion)
{{ descripcion !}} rtrim(descripcion)
{{! descripcion !}} trim(descripcion)
Filtros
{{ titular | striptags | upper }}
{% filter striptags | upper %}
titular
{% endfilter %}
{{ articulo | truncate(150) }}
{{ articulo | truncate(150, true) }}
Mecanismo
 de escape
« Twig por defecto escapa
   todas las variables »
{{ variable | raw }}
{{ variable | e }}
twig:
  autoescape: true
              false
              js
Estructura
de control for
Taversable
                  Countable




                 {
{% for articulo in articulos %}
  ...
{% endfor %}
{% for i in 0..10 %}
 ...
{% endfor %}
{% for i in 'a'..'z' %}
 ...
{% endfor %}
{% for articulo in articulos %}
  ...
{% else %}
  No existen artículos
{% endfor %}
{% for . in . %}   {% for . in . %}
  ...                ...
{% empty %}        {% else %}
  ...                ...
{% endfor %}       {% endfor %}
variables dentro del for
loop.index    loop.revindex
loop.index0   loop.revindex0

loop.first
              loop.parent
loop.last
loop.length
{% for articulo in articulos %}
 articulo número {{ loop.index }}
{% endfor %}
{% for articulo in articulos %}
 {% if not loop.first %}
    Anterior
 {% endif %}
 {% if not loop.last %}
   Siguiente
 {% endif %}
{% endfor %}
{% for seccion in secciones %}
 {% for categoria in categorias %}
    {{ loop.parent.loop.index }}
    {{ loop.index }}
 {% endfor %}
{% endfor %}
{% for clave in variable | keys %}
 ...
{% endfor %}
{% for clave, valor in variable %}
 ...
{% endfor %}
Estructura
de control if
{% if conectado %}
  ...
{% elseif registrado %}
  ...
{% else %}
  ...
{% endif %}
{% if numero is divisibleby(3) %}
{% if texto is none %}

{% if numero is even %}
 {% if numero is odd %}
{% if descripcion is empty %}

  if (descripcion == null ||
      descripcion == false ||
      descripcion == "") {
    ...
  }
{{ app.user ? 'Mi perfil' :
               'Registrate' }}
Herencia
de plantillas
{% extends "layout.twig" %}
{% extends seccion ~ "_layout.twig" %}
{% extends
seccion | default("principal") ~
"_layout.twig"
%}
{% extends
app.user ? "conectado.html" :
           "anonimo.html"
%}
layout.twig
<html>
<head>
  <title>   </title>
</head>
<body>
    <h1>    </h1>
<html>
<head>
                          layout.twig
  <title>
    {% block titulo %}{% endblock %}
  </title>
</head>
<body>
  <h1>
    {% block titulo %}{% endblock %}
  </h1>
<html>
<head>                      layout.twig
  <title>
    {% block titulo %}{% endblock %}
  </title>
</head>
<body>
  <h1>
     {{ block('title') }}
  </h1>
{% block lateral %}
{% endblock %}        ponencias.twig
   layout.twig
ponencias.twig

{% block lateral %}
  <h3>¿Echas en falta algún tema?</h3>
  <p>...</p>

  {{ parent( ) }}
{% endblock %}
{% block contenidos %}
  {% block principal %}
     ...
  {% endblock %}
{% endblock %}
{% block contenidos %}
  {% block principal %}
     ...
  {% endblock principal %}
{% endblock contenidos %}
Herencia
horizontal
portada.twig
...
{% for articulo in articulos %}
    {{ articulo. titulo }}
{% endfor %}
...
listado.twig


{% for articulo in articulos %}
  {{ articulo. titulo }}
{% endfor %}
portada.twig


...
{% include "listado.twig" %}
...
portada.twig


...
{% include "listado.twig" only %}
...
{% include "listado.html" with
{ 'articulos': articulos } only %}
listado.twig


{% for articulo items %} %}
        item in in articulos
  {{ articulo. titulo }}
     item. titulo }}
{% endfor %}
{% include "listado.html"
   with { 'items': articulos } %}
{% set articulos =
   destacados | merge(otros) %}

{% include "listado.html"
   with { 'items': articulos }
   only %}
Extensiones
« Twig está construido
   con extensiones »
Macro     Tag
Filtro    Test
Función   Operator
Global
Para generar   Para modificar
  contenido       contenido

 Macro
                  Filtro
Función
https://github.com /
fabpot /
Twig!extensions
Filtros
{{ ponente.biografia | auto_link_text }}
DesymfonyBundleExtensionDesymfonyTwigExtension.php

class DesymfonyTwigExtension extends Twig_Extension {
   public function getFilters() {
     return array(
        'auto_link_text' => new Twig_Filter_Method (
            $this, 'auto_link_text'
        ));
   }

  static public function auto_link_text($string) {
     ...
     return $string;
  }
{{ ponente.biografia
   | auto_link_text
   | raw }}
DesymfonyBundleExtensionDesymfonyTwigExtension.php




public function getFilters() {
  return array(
   'auto_link_text' => new Twig_Filter_Method (
       $this, 'auto_link_text'
   ));
}
DesymfonyBundleExtensionDesymfonyTwigExtension.php




public function getFilters() {
  return array(
   'auto_link_text' => new Twig_Filter_Method (
       $this, 'auto_link_text',
       array('is_safe' => array('html'))
   ));
}
{{ ponente.biografia
   | auto_link_text
   | raw }}
Macros
« El equivalente en Twig a las
funciones de programación »
{% macro input(name, type) %}
  <input type="{{ type }}"
         name="{{ name }}" />
{% endmacro %}
{% macro input(name, type) %}
  ...
{% endmacro %}

<div>{{ _self.input('edad') }}</div>

 <input type="" name="edad" />
{% macro input(name, type) %}
  ...
{% endmacro %}

<div>{{ _self.input('edad', 'text') }}</div>


<input type="text" name="edad" />
{% macro input(name, type) %}
<input type="{{ type | default('text') }}"
      name="{{ name }}" />
{% endmacro %}
formularios.twig

{% macro input(name, type) %}
  <input type="{{ type }}"
         name="{{ name }}" />
{% endmacro %}
pagina.twig
{% import "formularios.twig"
   as formularios %}
<div>
  {{ formularios.input('edad') }}
</div>
Twig en
Symfony2
{{"path( ) }}   {% trans %}
 {{ url( ) }}

   caché        las plantillas se
 configurada      cargan solas
app/cache/dev/twig
/* DesymfonyBundle:Default:index.html.twig */
class __TwigTemplate_8e822424720fee931876b7c05a9112b0 extends Twig_Template
{
   protected $parent;

  public function __construct(Twig_Environment $env)
  {
    parent::__construct($env);

    $this!>blocks = array(
       'title' => array($this, 'block_title'),
       'pageid' => array($this, 'block_pageid'),
       'contenido' => array($this, 'block_contenido'),
    );
Twig fuera de
   Symfony2
1. Descargar Twig
2. Registrar su autoloader
EN LA PRÁCTICA




     Usando Twig en un
    proyecto PHP propio
Referencias
http://twig!project.org
Razones para
   usar Twig
Proyecto maduro y
    completo
La ¿única? posibilidad
para los maquetadores
Fácilmente extensible
Rendimiento
comparable a PHP
contacto
javier.eguiluz@gmail.com
twitter.com/javiereguiluz
linkedin.com/in/javiereguiluz

More Related Content

What's hot

Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Julissarodriguezvilca
JulissarodriguezvilcaJulissarodriguezvilca
JulissarodriguezvilcajulissaJRV
 
Guía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlGuía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlJesus Machicado Gomez
 
WordCamp Cantabria - Código mantenible con WordPress
WordCamp Cantabria  - Código mantenible con WordPressWordCamp Cantabria  - Código mantenible con WordPress
WordCamp Cantabria - Código mantenible con WordPressAsier Marqués
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRJuan Belón Pérez
 
Introducción a recaptcha 3.0
Introducción a recaptcha 3.0Introducción a recaptcha 3.0
Introducción a recaptcha 3.0Jesús Ayús
 
Curso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en DrupalCurso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en DrupalMediaglobe Innova
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de phpangie barre
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencapaulcuenca9
 
PHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básicoPHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básicoSpacetoshare
 

What's hot (20)

Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Julissarodriguezvilca
JulissarodriguezvilcaJulissarodriguezvilca
Julissarodriguezvilca
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Guía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlGuía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sql
 
WordCamp Cantabria - Código mantenible con WordPress
WordCamp Cantabria  - Código mantenible con WordPressWordCamp Cantabria  - Código mantenible con WordPress
WordCamp Cantabria - Código mantenible con WordPress
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Introducción a recaptcha 3.0
Introducción a recaptcha 3.0Introducción a recaptcha 3.0
Introducción a recaptcha 3.0
 
Curso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en DrupalCurso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en Drupal
 
Php Basico
Php BasicoPhp Basico
Php Basico
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de php
 
Introducción a Flask
Introducción a FlaskIntroducción a Flask
Introducción a Flask
 
4.Programación con PHP y MySQL
4.Programación con PHP y MySQL4.Programación con PHP y MySQL
4.Programación con PHP y MySQL
 
3 curso php
3 curso php3 curso php
3 curso php
 
Tema2 3
Tema2 3Tema2 3
Tema2 3
 
Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP
 
Php1 sesión 6
Php1 sesión 6Php1 sesión 6
Php1 sesión 6
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
J query
J queryJ query
J query
 
Php
PhpPhp
Php
 
PHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básicoPHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básico
 

Similar to Desymfony 2011 - Twig

Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Javier Eguiluz
 
Curso de Django | Django Course
Curso de Django | Django CourseCurso de Django | Django Course
Curso de Django | Django Coursealeperalta
 
Clase 6 twig
Clase 6 twigClase 6 twig
Clase 6 twighydras_cs
 
Django: el framework web definitivo
Django: el framework web definitivoDjango: el framework web definitivo
Django: el framework web definitivoAnder Beaskoetxea
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva pagejubacalo
 
Documento de referencia XHTML + CSS + JAVASCRIPT
Documento de referencia XHTML + CSS + JAVASCRIPTDocumento de referencia XHTML + CSS + JAVASCRIPT
Documento de referencia XHTML + CSS + JAVASCRIPTAndres Bedoya Tobon
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NETpabloesp
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPHP Vigo
 
Acceptance testing with Steak and Capybara
Acceptance testing with Steak and CapybaraAcceptance testing with Steak and Capybara
Acceptance testing with Steak and CapybaraSergio Gil
 
Php excel
Php excelPhp excel
Php excelpcuseth
 
HTML5 la revolución!
HTML5 la revolución!HTML5 la revolución!
HTML5 la revolución!maspixel
 
Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Atenea tech
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryDavid Arango
 
Diseño de páginas Web con HTML
Diseño de páginas Web con HTMLDiseño de páginas Web con HTML
Diseño de páginas Web con HTMLJavier
 

Similar to Desymfony 2011 - Twig (20)

Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8Twig, el nuevo motor de plantillas de Drupal 8
Twig, el nuevo motor de plantillas de Drupal 8
 
Curso de Django | Django Course
Curso de Django | Django CourseCurso de Django | Django Course
Curso de Django | Django Course
 
Twig
TwigTwig
Twig
 
Presentación CSS y HTML en Gummurcia
Presentación CSS y HTML en GummurciaPresentación CSS y HTML en Gummurcia
Presentación CSS y HTML en Gummurcia
 
Clase 6 twig
Clase 6 twigClase 6 twig
Clase 6 twig
 
Django: el framework web definitivo
Django: el framework web definitivoDjango: el framework web definitivo
Django: el framework web definitivo
 
Introducción a DJango
Introducción a DJangoIntroducción a DJango
Introducción a DJango
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva page
 
Documento de referencia XHTML + CSS + JAVASCRIPT
Documento de referencia XHTML + CSS + JAVASCRIPTDocumento de referencia XHTML + CSS + JAVASCRIPT
Documento de referencia XHTML + CSS + JAVASCRIPT
 
Curso de HTML5
Curso de HTML5Curso de HTML5
Curso de HTML5
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NET
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
 
Phonegap
PhonegapPhonegap
Phonegap
 
Acceptance testing with Steak and Capybara
Acceptance testing with Steak and CapybaraAcceptance testing with Steak and Capybara
Acceptance testing with Steak and Capybara
 
Php excel
Php excelPhp excel
Php excel
 
HTML5 la revolución!
HTML5 la revolución!HTML5 la revolución!
HTML5 la revolución!
 
Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQuery
 
Diseño de páginas Web con HTML
Diseño de páginas Web con HTMLDiseño de páginas Web con HTML
Diseño de páginas Web con HTML
 

More from Javier Eguiluz

deSymfony 2017: Symfony 4, Symfony Flex y el futuro de Symfony
deSymfony 2017: Symfony 4, Symfony Flex y el futuro de SymfonydeSymfony 2017: Symfony 4, Symfony Flex y el futuro de Symfony
deSymfony 2017: Symfony 4, Symfony Flex y el futuro de SymfonyJavier Eguiluz
 
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)Javier Eguiluz
 
Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)Javier Eguiluz
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricksJavier Eguiluz
 
Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPJavier Eguiluz
 
Twig, los mejores trucos y técnicas avanzadas
Twig, los mejores trucos y técnicas avanzadasTwig, los mejores trucos y técnicas avanzadas
Twig, los mejores trucos y técnicas avanzadasJavier Eguiluz
 
Desymfony 2012 - Concurso de diseño
Desymfony 2012 - Concurso de diseñoDesymfony 2012 - Concurso de diseño
Desymfony 2012 - Concurso de diseñoJavier Eguiluz
 
Desymfony 2011 - Tutorial #5: Backend
Desymfony 2011 - Tutorial #5: BackendDesymfony 2011 - Tutorial #5: Backend
Desymfony 2011 - Tutorial #5: BackendJavier Eguiluz
 
Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2Javier Eguiluz
 
Curso Symfony - Anexos
Curso Symfony - AnexosCurso Symfony - Anexos
Curso Symfony - AnexosJavier Eguiluz
 
Curso Symfony - Clase 5
Curso Symfony - Clase 5Curso Symfony - Clase 5
Curso Symfony - Clase 5Javier Eguiluz
 
Curso Symfony - Clase 4
Curso Symfony - Clase 4Curso Symfony - Clase 4
Curso Symfony - Clase 4Javier Eguiluz
 
Curso Symfony - Clase 3
Curso Symfony - Clase 3Curso Symfony - Clase 3
Curso Symfony - Clase 3Javier Eguiluz
 
Curso Symfony - Clase 2
Curso Symfony - Clase 2Curso Symfony - Clase 2
Curso Symfony - Clase 2Javier Eguiluz
 
Curso Symfony - Clase 1
Curso Symfony - Clase 1Curso Symfony - Clase 1
Curso Symfony - Clase 1Javier Eguiluz
 

More from Javier Eguiluz (19)

deSymfony 2017: Symfony 4, Symfony Flex y el futuro de Symfony
deSymfony 2017: Symfony 4, Symfony Flex y el futuro de SymfonydeSymfony 2017: Symfony 4, Symfony Flex y el futuro de Symfony
deSymfony 2017: Symfony 4, Symfony Flex y el futuro de Symfony
 
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
 
Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricks
 
Silex al límite
Silex al límiteSilex al límite
Silex al límite
 
Twig tips and tricks
Twig tips and tricksTwig tips and tricks
Twig tips and tricks
 
Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHP
 
Twig, los mejores trucos y técnicas avanzadas
Twig, los mejores trucos y técnicas avanzadasTwig, los mejores trucos y técnicas avanzadas
Twig, los mejores trucos y técnicas avanzadas
 
Wallpaper Notifier
Wallpaper NotifierWallpaper Notifier
Wallpaper Notifier
 
Backend (sf2Vigo)
Backend (sf2Vigo)Backend (sf2Vigo)
Backend (sf2Vigo)
 
Desymfony 2012 - Concurso de diseño
Desymfony 2012 - Concurso de diseñoDesymfony 2012 - Concurso de diseño
Desymfony 2012 - Concurso de diseño
 
Desymfony 2011 - Tutorial #5: Backend
Desymfony 2011 - Tutorial #5: BackendDesymfony 2011 - Tutorial #5: Backend
Desymfony 2011 - Tutorial #5: Backend
 
Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2
 
Curso Symfony - Anexos
Curso Symfony - AnexosCurso Symfony - Anexos
Curso Symfony - Anexos
 
Curso Symfony - Clase 5
Curso Symfony - Clase 5Curso Symfony - Clase 5
Curso Symfony - Clase 5
 
Curso Symfony - Clase 4
Curso Symfony - Clase 4Curso Symfony - Clase 4
Curso Symfony - Clase 4
 
Curso Symfony - Clase 3
Curso Symfony - Clase 3Curso Symfony - Clase 3
Curso Symfony - Clase 3
 
Curso Symfony - Clase 2
Curso Symfony - Clase 2Curso Symfony - Clase 2
Curso Symfony - Clase 2
 
Curso Symfony - Clase 1
Curso Symfony - Clase 1Curso Symfony - Clase 1
Curso Symfony - Clase 1
 

Recently uploaded

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Recently uploaded (19)

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Desymfony 2011 - Twig