SlideShare a Scribd company logo
Being dangerous
with Twig
A guide to using Twig – the fast, secure and

extensible PHP templating engine – to create clean

template code, leverage powerful filters, make your designers

write you love letters, write template functions that Don't clog up your

global PHP namespace, take advantage of true template inheritance, hang out with
Django programmers and be able to talk template syntax, enjoy true and non-invasive output
escaping, have more time for your family, control whitespace, add global

variables to all templates, stop lying when you try to tell yourself that <?php echo looks better than a

simple {{, use the fancy for-else control, Rock some macros – little reusable code functions, do awesome stuff like “{% if i is divisibleby 2 %}”,

mediate in the simplicity of your templates and drink more green tea, sandbox your template and whitelist capabilities – allowing Twig to be used in a CMS,

take advantage of the fact that all templates compile to PHP classes that can extend a base class of your choosing, impress your friends by changing the print tag from

{{ var }} to [all-your-base] var [are-belong-to-us], confuse the guy next to you by changing “is” and “is not” to mean the opposite things and convince him that he's misunderstood

how logical expressions are used in programming languages all along, create a custom tag that takes the body of its block and tweets it,

write templates the expresses presentation and not program logic.
Being dangerous with Twig
KnpUniversity.com

github.com/weaverryan
• Lead for the Symfony documentation

!
• KnpLabs US - Symfony consulting, training, 

Kumbaya

!
• Writer for KnpUniversity.com

screencasts
Buenos Dias!
Birthday
Wishes!
Happy Birthday Dad!
Happy Birthday
Anne-Sophie!
Happy Birthday
Rafael Nadal
Happy Birthday
Anderson Cooper
Why Twig?
Act 1
@weaverryan
because template
engines are awesome
@weaverryan
$engine = new RyansFantasyTemplatingEngine();

$tpl = $engine->loadTemplate('drupalcon.php');

$tpl->render([‘place' => ‘Austin!’]);
<!-- drupalcon.php -->



<h1><?php echo $place ?></h1>



<?php echo call_some_great_helper('woot!') ?>

Template Engines
• A template engine allows you to render a
presentation (HTML, XML, etc) via a
template in a controlled environment

!
• It should allow special functionality that
makes creating templates easier (helpers,
template inheritance, etc)
@weaverryan
@weaverryan
a template engine
is a tool
@weaverryan
why not just render
PHP templates?
PHP templating woes
• rendering template files is a hack: an include
statement with output-buffering control

!
• no or faked template inheritance

!
• no isolation: PHP templates suck in any
global variables or functions available
@weaverryan
@weaverryan
we want the brevity
of templates
!
with the isolation of
object-oriented
programming
@weaverryan
so give me some Twiggy pudding
Twig is:

» fast

» flexible

» concise

» secure

» fully-featured

» Extensible

» designer-friendly
Twig offers:

» true inheritance

» real output escaping

» tons of filters

» custom tags

» great documentation

» global variables

» the “for-else” control
@weaverryan
Twig is concise
!
and each template
compiles to an actual
PHP object
@weaverryan
Seeing is believing
https://www.flickr.com/photos/visitfinland/5203910918
@weaverryan
because template
engines are awesome
@weaverryan
because template
engines are awesome
@weaverryan
because template
engines are awesome
class __TwigTemplate_617db133b9dd01ce28b55447b extends Twig_Template

{

// line 3

public function block_body($context, array $blocks = array())

{

// line 4

echo " ";

foreach ($context['_seq'] as $context["_key"] =>
$context["blog"]) {

// line 5

echo " <h2>";

echo $this->getAttribute($context["blog"]);

echo "</h2>
@weaverryan https://www.flickr.com/photos/melolou/517629486
a moment of
templating zen
@weaverryan
“The template system is meant
to express presentation, not
program logic.”
- Django Documentation
@weaverryan
Twig can easily be
used anywhere
@weaverryan
require __DIR__.'/vendor/autoload.php';



$loader = new Twig_Loader_Filesystem(array(__DIR__.'/templates'));

$twig = new Twig_Environment($loader);



echo $twig->render('hello.twig', array(

'name' => 'DrupalCon!'

));

{# templates/hello.twig #}


{% extends 'layout.twig' %}



{% block body %}

Hello {{ name }}!

{% endblock %}

Act 2
Twig’s Simple Life
@weaverryan
Twig's three tags
Twig parses just three tags:

!
» comment tag

!
» print tag

!
» block tag
a. do nothing (comment tags)
{# comment #}

» totally ignored when rendered
@weaverryan
b. say something (print tags)
{{ 'print me!' }}

» simply prints the given expression

» equivalent to <?php echo

» If you're ultimately printing something,
use this tag
@weaverryan
@weaverryan
c. do something (block tags)
{% set foo = 'inside a block tag' %}

» used mostly for control-flow statements like if,
for, include and block

» can have beginning and end tags

» if you're *doing* something and not *printing*
something, use this tag
@weaverryan
Twig’s three tags
!
» do nothing: {# comment tag #}

» say something {{ ‘print tag’ }}

» do something {% block tag %}
It’s just that simple!
Act 3
Everything is an expression
@weaverryan
expressions Twig guts
» like PHP, most everything inside a tag 

is an expression

!
!
!
!
!
» expressions are the most interesting and 

flexible part of Twig
@weaverryan
Expressions Block names Block-specific tokens
@weaverryan
An expression can
consist of many
different things
https://www.flickr.com/photos/swambo/7617988518
@weaverryan
strings, numbers and variables
» like any language, strings, numbers and
variables are commonplace
@weaverryan
arrays and hashes
» arrays use [], hashes use {}
@weaverryan
operators
» just like PHP operators, but extensible
@weaverryan
filters
» filters modify the value that precedes it and 

are always preceded by a pipe (|)

» filters may or may not take arguments
@weaverryan
functions
» returns a value based on an arbitrary
input
@weaverryan
» strings, numbers and variables
» arrays and hashes
» operators
» filters
» functions
allow Twig to express Twig’s-self
Hey! It’s simple like PHP, but flexible
Act 4
Twig on the battlefield
@weaverryan
» a template that displays a list of “widgets”
in odd-even rows

» render info about each widget

» create basic, clean pagination
the test…
@weaverryan
@weaverryan
http://1.bp.blogspot.com/_D_Z-D2tzi14/TBpOnhVqyAI/AAAAAAAADFU/8tfM4E_Z4pU/s1600/responsibility12(alternate).png
@weaverryan
@weaverryan
» the “truncate” filter isn't part of Twig, but is
available via a library of extensions

» Everything in Twig is loaded via an Extension
(even the core stuff)

» Extensions are easy to use and create – we’ll
prove it later

!
» https://github.com/fabpot/Twig-extensions
your presenter is lying to you…
@weaverryan
http://1.bp.blogspot.com/_D_Z-D2tzi14/TBpOnhVqyAI/AAAAAAAADFU/8tfM4E_Z4pU/s1600/responsibility12(alternate).png
@weaverryan
@weaverryan https://www.flickr.com/photos/circasassy/7192588208
Flex some filters
@weaverryan
@weaverryan
convenience,
readability
@weaverryan
@weaverryan
pagination?
@weaverryan
@weaverryan
» but.... the “radius” function doesn't
actually exist in Twig.
the audacity: your speaker just lied again
But since it's pretty handy, let's create it!
Act 5
Twig extensions!
@weaverryan
» filters

» functions

» operators

» tests (e.g. divisibleby)

» custom tags
Twig extensions
everything in Twig is loaded by an “Extension”
class:
Extensions are easy!
@weaverryan
@weaverryan
Yes, there is a missing
piece of “hooking this up”
@weaverryan
It’s a small amount of
code, involving services
@weaverryan
Come to my talk
tomorrow ;)
!
MASTER THE NEW CORE OF
DRUPAL 8 NOW: WITH SYMFONY
AND SILEX
!
10:45 Room: G - Trellon | 4th floor
Act 6
Theming D7 versus D8
@weaverryan
Good News!
@weaverryan
The Changes are
Underwhelming!
@weaverryan
From D7 themes to D8 themes
» Other than the Twig syntax, things feel very
familiar

!
» page.tpl.php -> page.html.twig

» node.tpl.php -> node.html.twig

» THEME.info -> THEME.info.yml 

!
» THEME_field__taxonomy_term_reference()

->

field--taxonomy-term-reference.html.twig
@weaverryan
<div id="node-<?php print $node->nid; ?>" clear
<?php print render($title_prefix); ?>



<div class="content clearfix"<?php print $con
<?php

hide($content['links']);

print render($content);

?>

</div>

<?php $links = render($content['links']);

if ($links):

?>

<div class="link-wrapper">

<?php print $links; ?>

</div>

<?php endif; ?>

</div>

D7: node.tpl.php
@weaverryan
<article id="node-{{ node.id }}” role=“article"
{{ attributes|without(‘id', 'role') }}>



<header>{{ title_prefix }}</header>


<div class="content clearfix"{{ content_attri
{{ content|without('links') }}

</div>



{% if content.links %}

<footer class="link-wrapper">

{{ content.links }}

</footer>

{% endif %}



</article>

D8: node.html.twig
@weaverryan
Function overrides
@weaverryan
D7: template.php
function bartik_field__taxonomy_term_reference($
$output = '';



// Render the label, if it's not hidden.

if (!$variables['label_hidden']) {

$output .= '<h3 class="field-label">' . $var
}



// Render the items.

$output .= ($variables['element']['#label_disp
class="links inline">' : '<ul class="links">';

foreach ($variables['items'] as $delta => $ite
$output .= '<li class="taxonomy-term-referen
$variables['item_attributes'][$delta] . '>' . dr
}

$output .= '</ul>';

@weaverryan
D8: field--taxonomy-term-reference.html.twig
<div class="{{ attributes.class }} clearfix”
{{ attributes|without('class') }}>


<h3{{ label_attributes }}>{{ label }}: </h3>


<ul class="links">

{% for delta, item in items %}

<li class="taxonomy-term-reference-
{{ delta }}"{{ item_attributes[delta] }}
>{{ item }}</li>

{% endfor %}

</ul>


</div>

Act 7
after-dinner mint
Mmmmm…..
@weaverryan
Debugging
@weaverryan
/**

* settings.php

* 

* Twig debugging:

*

* When debugging is enabled:

* - The markup is surrounded by HTML comments

* - The dump() function can be used
* - Templates are automatically recompiled

*/

$settings['twig_debug'] = TRUE;
@weaverryan
… inline suggestions about
the template to override …
@weaverryan
… dump *all* variables
you have access to …
@weaverryan
<article id="node-{{ node.id }}" ...>



{{ dump() }}



{# ... #}

</article>
@weaverryan
… or just dump the names
of the variables …
@weaverryan
<article ...>



{{ dump(_context|keys) }}



</article>
@weaverryan
Inheritance
@weaverryan
{% block header %}

<header>

{{ title_prefix }}

{% if not page %}

<h2{{ title_attributes }}>

<a href="{{ node_url }}">{{ label }}</a>

</h2>

{% endif %}

{{ title_suffix }}



{% if display_submitted %}

<div class="meta submitted">

{{ user_picture }}

{{ submitted }}

</div>

{% endif %}

</header>

{% endblock %}
node.html.twig
@weaverryan
{% extends "core/themes/bartik/templates/node.html.twig" %}



{% block header %}

<h1 class="header">{{ label }}</h1>

{% endblock %}

node--article.html.twig
@weaverryan
{% extends "core/themes/bartik/templates/node.html.twig" %}



{% block header %}

<div class="article">

{{ parent() }}

</div>

{% endblock %}

node--article.html.twig
@weaverryan
dot.notation
@weaverryan
Am I working with an array?
<?php print render($page['header']); ?>
<div id="node-<?php print $node->nid; ?>">
or an object?
@weaverryan
Am I working with an array?
who cares!?
<article id="node-{{ node.id }}">
{{ page.header }}
@weaverryan
{{ page.header }}
» The dot notation is smart!

!
A. Is this an object with a public property?

B. Is this an array that has this key?

C. Is there a getHeader() function I can call?
@weaverryan
Templates in the
Database
@weaverryan
Twig.js
@weaverryan
A twig template can
*also* be rendered in
JavaScript
@weaverryan
<script src="/js/twig.js">

<script>

var template = twig({

data: 'The {{ baked_good }} is a lie.'

});



console.log(

template.render({
baked_good: ‘cupcake'
})

);

// outputs: "The cupcake is a lie."

</script>

@weaverryan
https://github.com/justjohn/twig.js/
Ryan Weaver
@weaverryan
¡Gracias!

More Related Content

What's hot

Learning Puppet Chapter 1
Learning Puppet Chapter 1Learning Puppet Chapter 1
Learning Puppet Chapter 1
Vishal Biyani
 
Puppet at Pinterest
Puppet at PinterestPuppet at Pinterest
Puppet at Pinterest
Puppet
 
Keeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and Webpack
Ignacio Martín
 
Puppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet at GitHub / ChatOps
Puppet at GitHub / ChatOps
Puppet
 
Writing Pluggable Software
Writing Pluggable SoftwareWriting Pluggable Software
Writing Pluggable Software
Tatsuhiko Miyagawa
 
Learning puppet chapter 2
Learning puppet chapter 2Learning puppet chapter 2
Learning puppet chapter 2
Vishal Biyani
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
Haehnchen
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perl
Dean Hamstead
 
Maven 3.0 at Øredev
Maven 3.0 at ØredevMaven 3.0 at Øredev
Maven 3.0 at Øredev
Matthew McCullough
 
Web develop in flask
Web develop in flaskWeb develop in flask
Web develop in flask
Jim Yeh
 
Learning puppet chapter 3
Learning puppet chapter 3Learning puppet chapter 3
Learning puppet chapter 3
Vishal Biyani
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
Bo-Yi Wu
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Pablo Godel
 
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
Edureka!
 
LvivPy - Flask in details
LvivPy - Flask in detailsLvivPy - Flask in details
LvivPy - Flask in details
Max Klymyshyn
 
Mastering Maven 2.0 In 1 Hour V1.3
Mastering Maven 2.0 In 1 Hour V1.3Mastering Maven 2.0 In 1 Hour V1.3
Mastering Maven 2.0 In 1 Hour V1.3
Matthew McCullough
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flask
juzten
 
Apache Ant
Apache AntApache Ant
Apache Ant
Rajesh Kumar
 
Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...
Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...
Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...
Ondřej Machulda
 
Introduction to puppet
Introduction to puppetIntroduction to puppet
Introduction to puppetHabeeb Rahman
 

What's hot (20)

Learning Puppet Chapter 1
Learning Puppet Chapter 1Learning Puppet Chapter 1
Learning Puppet Chapter 1
 
Puppet at Pinterest
Puppet at PinterestPuppet at Pinterest
Puppet at Pinterest
 
Keeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and Webpack
 
Puppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet at GitHub / ChatOps
Puppet at GitHub / ChatOps
 
Writing Pluggable Software
Writing Pluggable SoftwareWriting Pluggable Software
Writing Pluggable Software
 
Learning puppet chapter 2
Learning puppet chapter 2Learning puppet chapter 2
Learning puppet chapter 2
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perl
 
Maven 3.0 at Øredev
Maven 3.0 at ØredevMaven 3.0 at Øredev
Maven 3.0 at Øredev
 
Web develop in flask
Web develop in flaskWeb develop in flask
Web develop in flask
 
Learning puppet chapter 3
Learning puppet chapter 3Learning puppet chapter 3
Learning puppet chapter 3
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
Python Flask Tutorial For Beginners | Flask Web Development Tutorial | Python...
 
LvivPy - Flask in details
LvivPy - Flask in detailsLvivPy - Flask in details
LvivPy - Flask in details
 
Mastering Maven 2.0 In 1 Hour V1.3
Mastering Maven 2.0 In 1 Hour V1.3Mastering Maven 2.0 In 1 Hour V1.3
Mastering Maven 2.0 In 1 Hour V1.3
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flask
 
Apache Ant
Apache AntApache Ant
Apache Ant
 
Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...
Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...
Workshop: Functional testing made easy with PHPUnit & Selenium (phpCE Poland,...
 
Introduction to puppet
Introduction to puppetIntroduction to puppet
Introduction to puppet
 

Viewers also liked

Audio recording evaluration unit 4
Audio recording evaluration unit 4Audio recording evaluration unit 4
Audio recording evaluration unit 4
Sophia Gent
 
XY Lao Tablet
XY Lao TabletXY Lao Tablet
XY Lao Tablet
laonux
 
Baby & Kids Volume 3 - Vector Graphic Artworks
Baby & Kids Volume 3 - Vector Graphic ArtworksBaby & Kids Volume 3 - Vector Graphic Artworks
Baby & Kids Volume 3 - Vector Graphic Artworks
TZipp
 
Rom - Ruby Object Mapper
Rom - Ruby Object MapperRom - Ruby Object Mapper
Rom - Ruby Object Mapper
Alexander Kirillov
 
Back to School 2011
Back to School 2011Back to School 2011
Back to School 2011
jmu101211
 
Capturing Science: Doing Lecture Capture Differently
Capturing Science: Doing Lecture Capture DifferentlyCapturing Science: Doing Lecture Capture Differently
Capturing Science: Doing Lecture Capture Differently
Gemma Witton
 
ISSA Journal Paper - JavaScript Infection Model
ISSA Journal Paper - JavaScript Infection ModelISSA Journal Paper - JavaScript Infection Model
ISSA Journal Paper - JavaScript Infection ModelAditya K Sood
 
Ukg pedagogig 2
Ukg pedagogig 2Ukg pedagogig 2
Ukg pedagogig 2Patta Ula
 
#VisitCool DMA West Best Idea presentation
#VisitCool DMA West Best Idea presentation#VisitCool DMA West Best Idea presentation
#VisitCool DMA West Best Idea presentation
Flagstaff Convention and Visitors Bureau
 
Saim chishti books eemane abitalib2of2
Saim chishti books eemane abitalib2of2Saim chishti books eemane abitalib2of2
Saim chishti books eemane abitalib2of2
Saim Chishti Research Center Faisalabad
 
key to improving core competitive capacity 4 enterprise
key to improving core competitive capacity 4 enterprisekey to improving core competitive capacity 4 enterprise
key to improving core competitive capacity 4 enterpriseTrung Ngoc
 
XPath
XPathXPath
XPath
Raji Ghawi
 
Uuriv ja aktiivne õppeviis algklassides
Uuriv ja aktiivne õppeviis algklassidesUuriv ja aktiivne õppeviis algklassides
Uuriv ja aktiivne õppeviis algklassideshajao
 
Mmac power point4-17-15 - copy
Mmac power point4-17-15 - copyMmac power point4-17-15 - copy
Mmac power point4-17-15 - copy
mmacusa2015
 
Nair jure123456
Nair jure123456Nair jure123456
Nair jure123456
nairjure
 
Simple present for schedules
Simple present for schedulesSimple present for schedules
Simple present for schedulesNadia Espinosa
 
Tre bieng an - TS Pham Thuy Hoa
Tre bieng an - TS Pham Thuy HoaTre bieng an - TS Pham Thuy Hoa
Tre bieng an - TS Pham Thuy Hoa
Bois Indochinoise
 

Viewers also liked (20)

Audio recording evaluration unit 4
Audio recording evaluration unit 4Audio recording evaluration unit 4
Audio recording evaluration unit 4
 
XY Lao Tablet
XY Lao TabletXY Lao Tablet
XY Lao Tablet
 
Baby & Kids Volume 3 - Vector Graphic Artworks
Baby & Kids Volume 3 - Vector Graphic ArtworksBaby & Kids Volume 3 - Vector Graphic Artworks
Baby & Kids Volume 3 - Vector Graphic Artworks
 
Rom - Ruby Object Mapper
Rom - Ruby Object MapperRom - Ruby Object Mapper
Rom - Ruby Object Mapper
 
Back to School 2011
Back to School 2011Back to School 2011
Back to School 2011
 
Capturing Science: Doing Lecture Capture Differently
Capturing Science: Doing Lecture Capture DifferentlyCapturing Science: Doing Lecture Capture Differently
Capturing Science: Doing Lecture Capture Differently
 
Rescue1.asd
Rescue1.asdRescue1.asd
Rescue1.asd
 
ISSA Journal Paper - JavaScript Infection Model
ISSA Journal Paper - JavaScript Infection ModelISSA Journal Paper - JavaScript Infection Model
ISSA Journal Paper - JavaScript Infection Model
 
Ukg pedagogig 2
Ukg pedagogig 2Ukg pedagogig 2
Ukg pedagogig 2
 
#VisitCool DMA West Best Idea presentation
#VisitCool DMA West Best Idea presentation#VisitCool DMA West Best Idea presentation
#VisitCool DMA West Best Idea presentation
 
Saim chishti books eemane abitalib2of2
Saim chishti books eemane abitalib2of2Saim chishti books eemane abitalib2of2
Saim chishti books eemane abitalib2of2
 
DGAE
DGAEDGAE
DGAE
 
key to improving core competitive capacity 4 enterprise
key to improving core competitive capacity 4 enterprisekey to improving core competitive capacity 4 enterprise
key to improving core competitive capacity 4 enterprise
 
XPath
XPathXPath
XPath
 
Uuriv ja aktiivne õppeviis algklassides
Uuriv ja aktiivne õppeviis algklassidesUuriv ja aktiivne õppeviis algklassides
Uuriv ja aktiivne õppeviis algklassides
 
Mmac power point4-17-15 - copy
Mmac power point4-17-15 - copyMmac power point4-17-15 - copy
Mmac power point4-17-15 - copy
 
Nair jure123456
Nair jure123456Nair jure123456
Nair jure123456
 
Spm 2322 w7n8
Spm 2322 w7n8Spm 2322 w7n8
Spm 2322 w7n8
 
Simple present for schedules
Simple present for schedulesSimple present for schedules
Simple present for schedules
 
Tre bieng an - TS Pham Thuy Hoa
Tre bieng an - TS Pham Thuy HoaTre bieng an - TS Pham Thuy Hoa
Tre bieng an - TS Pham Thuy Hoa
 

Similar to Twig: Friendly Curly Braces Invade Your Templates!

Being Dangerous with Twig (Symfony Live Paris)
Being Dangerous with Twig (Symfony Live Paris)Being Dangerous with Twig (Symfony Live Paris)
Being Dangerous with Twig (Symfony Live Paris)
Ryan Weaver
 
Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress Maurizio Pelizzone
 
Twig for Drupal 8 and PHP | Presented at OC Drupal
Twig for Drupal 8 and PHP | Presented at OC DrupalTwig for Drupal 8 and PHP | Presented at OC Drupal
Twig for Drupal 8 and PHP | Presented at OC Drupal
webbywe
 
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPTwig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPFabien Potencier
 
Future proofing design work with Web components
Future proofing design work with Web componentsFuture proofing design work with Web components
Future proofing design work with Web components
btopro
 
Twig for Drupal @ Frontendunited Amsterdam 2012
Twig for Drupal @ Frontendunited Amsterdam 2012Twig for Drupal @ Frontendunited Amsterdam 2012
Twig for Drupal @ Frontendunited Amsterdam 2012
Rene Bakx
 
Recursion with details Implementation.pptx
Recursion with details Implementation.pptxRecursion with details Implementation.pptx
Recursion with details Implementation.pptx
mrhabib10
 
EN Intro to Recursion by Slidesgo.pptx
EN Intro to Recursion by Slidesgo.pptxEN Intro to Recursion by Slidesgo.pptx
EN Intro to Recursion by Slidesgo.pptx
mrsk83179
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />tutorialsruby
 
&lt;b>PHP&lt;/b> Reference: Beginner to Intermediate &lt;b>PHP5&lt;/b>
&lt;b>PHP&lt;/b> Reference: Beginner to Intermediate &lt;b>PHP5&lt;/b>&lt;b>PHP&lt;/b> Reference: Beginner to Intermediate &lt;b>PHP5&lt;/b>
&lt;b>PHP&lt;/b> Reference: Beginner to Intermediate &lt;b>PHP5&lt;/b>tutorialsruby
 
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
Twig internals - Maksym MoskvychevTwig internals   maksym moskvychevTwig internals - Maksym MoskvychevTwig internals   maksym moskvychev
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
DrupalCampDN
 
Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)
Javier Eguiluz
 
Thymeleaf Introduction
Thymeleaf IntroductionThymeleaf Introduction
Thymeleaf Introduction
Anthony Chen
 
Winter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPWinter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPtutorialsruby
 
Winter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPWinter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPtutorialsruby
 
TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGINGTRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
David Grudl
 
Php tutorial from_beginner_to_master
Php tutorial from_beginner_to_masterPhp tutorial from_beginner_to_master
Php tutorial from_beginner_to_masterPrinceGuru MS
 
Remote File Inclusion / Local File Inclusion [Attack and Defense Techniques]
Remote File Inclusion / Local File Inclusion [Attack and Defense Techniques]Remote File Inclusion / Local File Inclusion [Attack and Defense Techniques]
Remote File Inclusion / Local File Inclusion [Attack and Defense Techniques]
Ismail Tasdelen
 

Similar to Twig: Friendly Curly Braces Invade Your Templates! (20)

Being Dangerous with Twig (Symfony Live Paris)
Being Dangerous with Twig (Symfony Live Paris)Being Dangerous with Twig (Symfony Live Paris)
Being Dangerous with Twig (Symfony Live Paris)
 
Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress
 
Twig for Drupal 8 and PHP | Presented at OC Drupal
Twig for Drupal 8 and PHP | Presented at OC DrupalTwig for Drupal 8 and PHP | Presented at OC Drupal
Twig for Drupal 8 and PHP | Presented at OC Drupal
 
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPTwig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHP
 
Future proofing design work with Web components
Future proofing design work with Web componentsFuture proofing design work with Web components
Future proofing design work with Web components
 
Twig for Drupal @ Frontendunited Amsterdam 2012
Twig for Drupal @ Frontendunited Amsterdam 2012Twig for Drupal @ Frontendunited Amsterdam 2012
Twig for Drupal @ Frontendunited Amsterdam 2012
 
Recursion with details Implementation.pptx
Recursion with details Implementation.pptxRecursion with details Implementation.pptx
Recursion with details Implementation.pptx
 
EN Intro to Recursion by Slidesgo.pptx
EN Intro to Recursion by Slidesgo.pptxEN Intro to Recursion by Slidesgo.pptx
EN Intro to Recursion by Slidesgo.pptx
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
&lt;b>PHP&lt;/b> Reference: Beginner to Intermediate &lt;b>PHP5&lt;/b>
&lt;b>PHP&lt;/b> Reference: Beginner to Intermediate &lt;b>PHP5&lt;/b>&lt;b>PHP&lt;/b> Reference: Beginner to Intermediate &lt;b>PHP5&lt;/b>
&lt;b>PHP&lt;/b> Reference: Beginner to Intermediate &lt;b>PHP5&lt;/b>
 
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
Twig internals - Maksym MoskvychevTwig internals   maksym moskvychevTwig internals - Maksym MoskvychevTwig internals   maksym moskvychev
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
 
Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)
 
Introduce Django
Introduce DjangoIntroduce Django
Introduce Django
 
Thymeleaf Introduction
Thymeleaf IntroductionThymeleaf Introduction
Thymeleaf Introduction
 
Winter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPWinter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHP
 
Winter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPWinter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHP
 
TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGINGTRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
 
Django Girls Tutorial
Django Girls TutorialDjango Girls Tutorial
Django Girls Tutorial
 
Php tutorial from_beginner_to_master
Php tutorial from_beginner_to_masterPhp tutorial from_beginner_to_master
Php tutorial from_beginner_to_master
 
Remote File Inclusion / Local File Inclusion [Attack and Defense Techniques]
Remote File Inclusion / Local File Inclusion [Attack and Defense Techniques]Remote File Inclusion / Local File Inclusion [Attack and Defense Techniques]
Remote File Inclusion / Local File Inclusion [Attack and Defense Techniques]
 

More from Ryan Weaver

Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Ryan Weaver
 
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and more
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and moreSymfony Guard Authentication: Fun with API Token, Social Login, JWT and more
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and more
Ryan Weaver
 
Guard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful SecurityGuard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful Security
Ryan Weaver
 
Silex: Microframework y camino fácil de aprender Symfony
Silex: Microframework y camino fácil de aprender SymfonySilex: Microframework y camino fácil de aprender Symfony
Silex: Microframework y camino fácil de aprender Symfony
Ryan Weaver
 
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsCool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Ryan Weaver
 
The Wonderful World of Symfony Components
The Wonderful World of Symfony ComponentsThe Wonderful World of Symfony Components
The Wonderful World of Symfony Components
Ryan Weaver
 
A PHP Christmas Miracle - 3 Frameworks, 1 app
A PHP Christmas Miracle - 3 Frameworks, 1 appA PHP Christmas Miracle - 3 Frameworks, 1 app
A PHP Christmas Miracle - 3 Frameworks, 1 app
Ryan Weaver
 
Symfony2: Get your project started
Symfony2: Get your project startedSymfony2: Get your project started
Symfony2: Get your project startedRyan Weaver
 
Symony2 A Next Generation PHP Framework
Symony2 A Next Generation PHP FrameworkSymony2 A Next Generation PHP Framework
Symony2 A Next Generation PHP Framework
Ryan Weaver
 
Hands-on with the Symfony2 Framework
Hands-on with the Symfony2 FrameworkHands-on with the Symfony2 Framework
Hands-on with the Symfony2 Framework
Ryan Weaver
 
Doctrine2 In 10 Minutes
Doctrine2 In 10 MinutesDoctrine2 In 10 Minutes
Doctrine2 In 10 MinutesRyan Weaver
 
Dependency Injection: Make your enemies fear you
Dependency Injection: Make your enemies fear youDependency Injection: Make your enemies fear you
Dependency Injection: Make your enemies fear you
Ryan Weaver
 
The Art of Doctrine Migrations
The Art of Doctrine MigrationsThe Art of Doctrine Migrations
The Art of Doctrine Migrations
Ryan Weaver
 

More from Ryan Weaver (13)

Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
Finally, Professional Frontend Dev with ReactJS, WebPack & Symfony (Symfony C...
 
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and more
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and moreSymfony Guard Authentication: Fun with API Token, Social Login, JWT and more
Symfony Guard Authentication: Fun with API Token, Social Login, JWT and more
 
Guard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful SecurityGuard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful Security
 
Silex: Microframework y camino fácil de aprender Symfony
Silex: Microframework y camino fácil de aprender SymfonySilex: Microframework y camino fácil de aprender Symfony
Silex: Microframework y camino fácil de aprender Symfony
 
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsCool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
 
The Wonderful World of Symfony Components
The Wonderful World of Symfony ComponentsThe Wonderful World of Symfony Components
The Wonderful World of Symfony Components
 
A PHP Christmas Miracle - 3 Frameworks, 1 app
A PHP Christmas Miracle - 3 Frameworks, 1 appA PHP Christmas Miracle - 3 Frameworks, 1 app
A PHP Christmas Miracle - 3 Frameworks, 1 app
 
Symfony2: Get your project started
Symfony2: Get your project startedSymfony2: Get your project started
Symfony2: Get your project started
 
Symony2 A Next Generation PHP Framework
Symony2 A Next Generation PHP FrameworkSymony2 A Next Generation PHP Framework
Symony2 A Next Generation PHP Framework
 
Hands-on with the Symfony2 Framework
Hands-on with the Symfony2 FrameworkHands-on with the Symfony2 Framework
Hands-on with the Symfony2 Framework
 
Doctrine2 In 10 Minutes
Doctrine2 In 10 MinutesDoctrine2 In 10 Minutes
Doctrine2 In 10 Minutes
 
Dependency Injection: Make your enemies fear you
Dependency Injection: Make your enemies fear youDependency Injection: Make your enemies fear you
Dependency Injection: Make your enemies fear you
 
The Art of Doctrine Migrations
The Art of Doctrine MigrationsThe Art of Doctrine Migrations
The Art of Doctrine Migrations
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

Twig: Friendly Curly Braces Invade Your Templates!