Este documento describe Twig, un motor de plantillas para PHP incluido en Symfony. Twig es rápido, seguro y flexible, permitiendo definir etiquetas personalizadas. Ofrece atajos para tareas comunes como iterar sobre arrays vacíos. Incluye herencia múltiple, bloques de código y escape automático. Es fácil de aprender, extensible y está bien documentado y probado.
Descripción de como usar los punteros a funciones en el lenguaje de programación C.
El guión de esta presentación se encuentra en:
http://www.slideshare.net/AnesGy/script-de-punteros-a-funciones
"Twig, cuando Django encontró a Symfony" fue la primera ponencia impartida durante el segundo día de las Jornadas Symfony 2011.
Durante la misma, se explican las características más destacadas del motor de plantillas Twig, empezando con las más adecuadas para diseñadores/maquetadores y siguiendo después con las características para desarrolladores.
También se mencionan brevemente las ventajas de la integración de Twig en Symfony2 y se concluye con un ejemplo práctico del uso de Twig en proyectos PHP propios.
Descripción de como usar los punteros a funciones en el lenguaje de programación C.
El guión de esta presentación se encuentra en:
http://www.slideshare.net/AnesGy/script-de-punteros-a-funciones
"Twig, cuando Django encontró a Symfony" fue la primera ponencia impartida durante el segundo día de las Jornadas Symfony 2011.
Durante la misma, se explican las características más destacadas del motor de plantillas Twig, empezando con las más adecuadas para diseñadores/maquetadores y siguiendo después con las características para desarrolladores.
También se mencionan brevemente las ventajas de la integración de Twig en Symfony2 y se concluye con un ejemplo práctico del uso de Twig en proyectos PHP propios.
Conceptos básicos sobre funciones en C: que son, para qué sirven, cómo declararlas, cómo implementarlas, cómo pasar parámetros tanto por valor como por referencia, etc
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaAMADO SALVADOR
Distribuidor Oficial Ariston en Valencia: Amado Salvador distribuidor autorizado de Ariston, una marca líder en soluciones de calefacción y agua caliente sanitaria. Amado Salvador pone a tu disposición el catálogo completo de Ariston, encontrarás una amplia gama de productos diseñados para satisfacer las necesidades de hogares y empresas.
Calderas de condensación: Ofrecemos calderas de alta eficiencia energética que aprovechan al máximo el calor residual. Estas calderas Ariston son ideales para reducir el consumo de gas y minimizar las emisiones de CO2.
Bombas de calor: Las bombas de calor Ariston son una opción sostenible para la producción de agua caliente. Utilizan energía renovable del aire o el suelo para calentar el agua, lo que las convierte en una alternativa ecológica.
Termos eléctricos: Los termos eléctricos, como el modelo VELIS TECH DRY (sustito de los modelos Duo de Fleck), ofrecen diseño moderno y conectividad WIFI. Son ideales para hogares donde se necesita agua caliente de forma rápida y eficiente.
Aerotermia: Si buscas una solución aún más sostenible, considera la aerotermia. Esta tecnología extrae energía del aire exterior para calentar tu hogar y agua. Además, puede ser elegible para subvenciones locales.
Amado Salvador es el distribuidor oficial de Ariston en Valencia. Explora el catálogo y descubre cómo mejorar la comodidad y la eficiencia en tu hogar o negocio.
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialAMADO SALVADOR
Explora el catálogo completo de cajas fuertes BTV, disponible a través de Amado Salvador, distribuidor oficial de BTV. Este catálogo presenta una amplia variedad de cajas fuertes, cada una diseñada con la más alta calidad para ofrecer la máxima seguridad y satisfacer las diversas necesidades de protección de nuestros clientes.
En Amado Salvador, como distribuidor oficial de BTV, ofrecemos productos que destacan por su innovación, durabilidad y robustez. Las cajas fuertes BTV son reconocidas por su eficiencia en la protección contra robos, incendios y otros riesgos, lo que las convierte en una opción ideal tanto para uso doméstico como comercial.
Amado Salvador, distribuidor oficial BTV, asegura que cada producto cumpla con los más estrictos estándares de calidad y seguridad. Al adquirir una caja fuerte a través de Amado Salvador, distribuidor oficial BTV, los clientes pueden tener la tranquilidad de que están obteniendo una solución confiable y duradera para la protección de sus pertenencias.
Este catálogo incluye detalles técnicos, características y opciones de personalización de cada modelo de caja fuerte BTV. Desde cajas fuertes empotrables hasta modelos de alta seguridad, Amado Salvador, como distribuidor oficial de BTV, tiene la solución perfecta para cualquier necesidad de seguridad. No pierdas la oportunidad de conocer todos los beneficios y características de las cajas fuertes BTV y protege lo que más valoras con la calidad y seguridad que solo BTV y Amado Salvador, distribuidor oficial BTV, pueden ofrecerte.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
2. ¿Qué es Twig?
Twig is a modern template engine for PHP (definición de
la web de twig)
Rápido (compila los templates en código php
optimizado)
Seguro (tiene un modulo de sandbox para evaluar código
no verificado)
Flexible (permite al desarrollador definir sus própios
custom tags)
3. ¿Por qué otro motor de templates?
PHP es el mismo un motor de templates (muy largo de
escribir)
Me explico:
<?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>
{{ var|e }}
4. Sintaxis orientada a Templates
Hay muchos accesos directos (Shortcuts) para realizar
las acciones mas comunes.
Un ejemplo (cuando iteramos sobre un array vacio):
{% for user in users %}
* {{ user.name }}
{% else %}
No user have been found.
{% endfor %}
5. Todas las funciones
Con twig tenemos todas las opciones posibles a la hora
de crear templates, tenemos herencia multiple, bloques
de código, escape automático y muchas otras
funcionalidades.
{% extends "layout.html" %}
{% block content %}
Content of the page...
{% endblock %}
6. Mas cosas que tiene twig
Fácil de aprender
Extensible (Permite crear tus propios tags, filtros, etc..)
Unit Tested (Twig está testeado completamente y
preparado para grandes proyectos)
Documentado
Seguro
Mensajes de error claros
Rápido
14. Tests
{# Se evalúa a true si la variable is null, false, o cadena
vacía #}
{% if foo is empty %}
...
{% endif %}
15. NOTA:
Twig no tiene el operador ===
Para esto usamos una función “sameas”
{% if foo.attribute is sameas(false) %}
the foo attribute really is the ``false`` PHP value
{% endif %}
18. Vale, Fin de diapositivas
Creamos un proyecto de symfony 2.1 para hacer cositas
php composer.phar create-project symfony/framework-
standard-edition twig-formacion
Copiamos composer.phar en twig-formacion y ejecutamos:
php composer.phar install
Chmod –R 777 app/cache
Chmod –R 777 app/logs
http://local.twig-formacion.com/app_dev.php/demo/hello/
19. Un poquito de Symfony
Accedemos a
DemoBundle -> Controller -> DemoController.php
helloAction
Template
Resources/views/demo/hello.html.twig
Interesante para pasar parámetros Symfony hace un
return de un array con las variables a pasar a la vista.
20. Ejercicios
1. Pasar una variable nueva desde el controller a twig y printar
por pantalla.
2. Imprimir un array ordenado
1. {{ array | sort }}
3. Escapar una variable
1. {{ string | e(„html‟) }}
4. Escapar una cadena de texto larga
{% filter escape('html') %}
<script type="text/javascript">
Var texto="<p>Loremipsumdolorsitamet</p>";
alert(texto);
</script>
{%end filter %}
21. Random
Presenta por pantalla un numero aleatorio
Presenta por pantalla un numero aleatorio menor que 10
Presenta por pantalla un carácter aleatorio de un string
Presenta por pantalla un elemento aleatorio de un array
22. Fechas
Print dia de hoy
{{„now‟ | date(“d”)}}
Print fecha completa dd/mm/yyyy HH:mi:ss
{{„now‟ | date(“d/m/Y H:i:s”)}}
Print de la fecha y la hora de ahora en Argentina
{{'now'|date("d/m/Y H:i:s","America/Argentina/Buenos_Aires")}}
Print la fecha de aquí a 30 días
{{date('+30days')|date}}
23. Date
Ejemplo interesante
Si tenemos una variable fechaNacimiento como hacemos
la comprobación si el usuario es menor de edad ?
{% if date(fechaNacimiento) < date(„-18years‟) %}
Eres menor de edad
{% endif %}
24. Otra de date
Queremos imprimir la fecha del proximo viernes.
El curso de formularios en SF2 será el
{{date('next Friday')|date(„d/m/Y 14:00‟)}}
25. Arrays
Tenemos el siguiente array
{% set oferta = {
'precio':30,
'fechaExpiracion':date('+30days')
}%}
Como mostramos lo siguiente:
La oferta cuesta 30 euros (35.4 con IVA) y es válida hasta el
19/08/2012
26. Varias opciones
~ (concatenar con el MAC alt + ñ)
{{'La oferta cuesta‟ ~ oferta.precio ~ 'euros(‟ ~
oferta.precio*1.18 ~‟ con IVA)y es válida hasta el‟
~oferta.fechaExpiracion|date()}}
Format()
{{'La oferta cuesta %.2f euros(%.2f con IVA)y es válida
hasta el
%s'|format(oferta.precio, oferta.precio*1.18,oferta.fech
aExpiracion|date())}}
27. Mas opciones
Replace()
{{'La oferta cuesta :precio euros( :total con IVA)y es
válida hasta el
:fecha'|replace({':precio':oferta.precio,':total':oferta.pr
ecio*1.18,':fecha':oferta.fechaExpiracion|date()})}}
La chula
{{"La oferta cuesta #{oferta.precio}
euros(#{oferta.precio*1.18} con IVA) y es válida
hasta el #{oferta.fechaExpiracion|date()}"}}
28. Listas
Dada una lista como esta
{% set lista=['a','b','c','d'] %}
Queremos imprimir solo b, c, d
Solucion:
{% for value in lista[1:] %}
{{value}}
{% endfor %}
29. Includes
{% extends request.ajax ? "base_ajax.html" : "base.html" %}
{% block content %}
Este es el contenido a mostrar.
{% endblock %}
30. Ejercicios
Crear un template que herede de otro y que cree un
bloque con una capa con fondo de color rojo.
Podemos usar el layout por defecto
El que herede que sea de color azul
31. Include
Crear un template hello2.html.twig que se incluya al
principio del bloque content.
NOTA: no se puede añadir contenidos en templates que
hereden de otros, fuera de los bloques.
{% include 'AcmeDemoBundle::demo/hello2.html.twig' %}
Podemos usar include con el simbolo de concatenar (~)
incluso usando filtros.
{% include var|default('index') ~ '_foo.html' %}