Your SlideShare is downloading. ×
Twig, что за..
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Twig, что за..

1,604
views

Published on

twig tempalte en

twig tempalte en

Published in: Business

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,604
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Twig, что за ...? Alex Demchenko alex@lazy-ants.deсуббота, 29 октября 11 г.
  • 2. Twig, что за ...? Покурим?суббота, 29 октября 11 г.
  • 3. Twig, что за ...? template engine & templating languageсуббота, 29 октября 11 г.
  • 4. Twig, что за ...? symfony 2 templating layerсуббота, 29 октября 11 г.
  • 5. Twig, что за ...? template engine twig php smartyсуббота, 29 октября 11 г.
  • 6. Twig, что за ...? /** * This engine knows how to render Twig templates. * * @author Fabien Potencier <fabien@symfony.com> */ class TwigEngine implements EngineInterface https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/TwigBundle/TwigEngine.php#L20суббота, 29 октября 11 г.
  • 7. Twig, что за ...? templating language twig php smartyсуббота, 29 октября 11 г.
  • 8. Twig, что за ...? как отключить?суббота, 29 октября 11 г.
  • 9. Twig, что за ...? # app/config/config.yml framework: # ... templating: { engines: [twig, php] } http://symfony.com/doc/current/cookbook/templating/PHP.htmlсуббота, 29 октября 11 г.
  • 10. Twig, что за ...? index.html.phpсуббота, 29 октября 11 г.
  • 11. Twig, что за ...? Подключить к любому проектусуббота, 29 октября 11 г.
  • 12. Twig, что за ...? require_once /path/to/lib/Twig/Autoloader.php; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem(/path/to/templates); $twig = new Twig_Environment($loader, array( cache => /path/to/compilation_cache, )); echo $twig->render(index.html, array(twitter => #sfcampua));суббота, 29 октября 11 г.
  • 13. Twig, что за ...? {% extends "layout.html" %} {% block content %} Symfony Camp UA twitter hash {{ twitter }}! {% endblock %}суббота, 29 октября 11 г.
  • 14. Twig, что за ...? Основная задача любого шаблонизатора упростить работу с шаблонамисуббота, 29 октября 11 г.
  • 15. Twig, что за ...? •Простой синтаксис •Безопасность •Наследование •Хелперы •Sandbox •...суббота, 29 октября 11 г.
  • 16. Twig, что за ...? {# ... #} комментарии {% ... %} блоки {{ ... }} отображениесуббота, 29 октября 11 г.
  • 17. Twig, что за ...? {% if user is defined %} !! Привет {{ user.name }} !! сейчас {{ ‘now’ | date(‘d.m.Y’) }} {% endif %}суббота, 29 октября 11 г.
  • 18. Twig, что за ...? Вывод переменныхсуббота, 29 октября 11 г.
  • 19. Twig, что за ...? ! ! Привет {{ user.name }} отличное {{ photo }}суббота, 29 октября 11 г.
  • 20. Twig, что за ...? Выполнение чего-либосуббота, 29 октября 11 г.
  • 21. Twig, что за ...? {% if user is defined %} ! ! ... {% endif %}суббота, 29 октября 11 г.
  • 22. Twig, что за ...? {% spaceless %} <ul> <li> <a ... >XXX</a> </li> <li> ... {% endspaceless %}суббота, 29 октября 11 г.
  • 23. Twig, что за ...? <ul><li><a ... >XXX</a></li><li>...суббота, 29 октября 11 г.
  • 24. Twig, что за ...? set if ... else for include blockсуббота, 29 октября 11 г.
  • 25. Twig, что за ...? Комментарии игнорируются {# if user is defined #} {#!! ... endif #}суббота, 29 октября 11 г.
  • 26. Twig, что за ...? установка и отображение переменныхсуббота, 29 октября 11 г.
  • 27. Twig, что за ...? {% set foo = foo %} {{ foo }} {% set foo = [1, 2] %} {{ foo.0 }} {% set foo = {foo: bar} %} {{ foo.bar }}суббота, 29 октября 11 г.
  • 28. Twig, что за ...? массивы и хешисуббота, 29 октября 11 г.
  • 29. Twig, что за ...? array, [] {% for list in [one, two] %} ... {% endfor %}суббота, 29 октября 11 г.
  • 30. Twig, что за ...? hash, {} {% for key, val in {en: US, de: DE} %} ... {% endfor %}суббота, 29 октября 11 г.
  • 31. Twig, что за ...? Операторысуббота, 29 октября 11 г.
  • 32. Twig, что за ...? {{ 1 + 2 }} {{ con~cat }} {% for i in a..z %} {{ i }} {% endfor %}суббота, 29 октября 11 г.
  • 33. Twig, что за ...? Фильтрысуббота, 29 октября 11 г.
  • 34. Twig, что за ...? Привет {{ user.name | upper }}суббота, 29 октября 11 г.
  • 35. Twig, что за ...? сейчас {{ ‘now’ | date(‘d.m.Y’) }}суббота, 29 октября 11 г.
  • 36. Twig, что за ...? {{ list | join(‘,’) }}суббота, 29 октября 11 г.
  • 37. Twig, что за ...? {{ title | striptags | upper }}суббота, 29 октября 11 г.
  • 38. Twig, что за ...? Функциисуббота, 29 октября 11 г.
  • 39. Twig, что за ...? range(0, 3) {% for i in range(0, 3) %} {{ i }}, {% endfor %}суббота, 29 октября 11 г.
  • 40. Twig, что за ...? Наследованиесуббота, 29 октября 11 г.
  • 41. Twig, что за ...?{% extends RopacGalleryFrontendBundle::layout.html.twig %}{% block page_class %} page_artist_news {% endblock %}{% block mobile_menu %} {% include RopacGalleryFrontendBundle:Artist:mobile_menu.html.twig with{active: news} %}{% endblock %}{% block content %} <article class="artist"> <header class="artist_news_header"> <h1>{{artist.firstname}} <strong>{{artist.lastname}}</strong></h1> </header> {% include RopacGalleryFrontendBundle:Artist:submenu.html.twig with{artist: artist, active: news} %} {% include RopacGalleryFrontendBundle:News:list.html.twig with {news:news} %} </article> {{ parent() }}{% endblock %}суббота, 29 октября 11 г.
  • 42. Twig, что за ...? Экранированиесуббота, 29 октября 11 г.
  • 43. Twig, что за ...? {{ user.name|e }} {{ user.email|e(js) }}суббота, 29 октября 11 г.
  • 44. Twig, что за ...? {% autoescape true %} Everything will be automatically escaped in this block {% endautoescape %}суббота, 29 октября 11 г.
  • 45. Twig, что за ...? Макросысуббота, 29 октября 11 г.
  • 46. Twig, что за ...? {% macro input(name, value, type, size) %} <input type="{{ type|default(text) }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" /> {% endmacro %}суббота, 29 октября 11 г.
  • 47. Twig, что за ...? {% import "forms.html" as forms %} <p>{{ forms.input(username) }}</p>суббота, 29 октября 11 г.
  • 48. Twig, что за ...? Кастомизациясуббота, 29 октября 11 г.
  • 49. Twig, что за ...? Каждый элемент в twig это extensionsсуббота, 29 октября 11 г.
  • 50. Twig, что за ...? фильтры функции операторы кастомные теги операторы тестированиясуббота, 29 октября 11 г.
  • 51. Twig, что за ...? extensions замены почтового адреса на кликабельную версиюсуббота, 29 октября 11 г.
  • 52. Twig, что за ...? namespace RopacGalleryBundleExtension; class RopacExtension extends Twig_Extension { public function getFilters() { return array( emailize => new Twig_Filter_Method($this, emailize) ); } public function getName() { return ropac_extension; } }суббота, 29 октября 11 г.
  • 53. Twig, что за ...? config.yml или services.yml services: twig.extension.ropac: class: RopacGalleryBundleExtension RopacExtension tags: - { name: twig.extension }суббота, 29 октября 11 г.
  • 54. Twig, что за ...? namespace RopacGalleryBundleExtension; class RopacExtension extends Twig_Extension { ... /** * Transfom emails into clickable mailto links * @param string $text * @return string */ public function emailize($text) { return preg_replace(/([w.!#$%-+.]+@[A-Za-z0-9-]+(. [A-Za-z0-9-]+)+)/, <a href="mailto:1">1</a>, $text); } ... }суббота, 29 октября 11 г.
  • 55. Twig, что за ...? {{ user.email | emailize }}суббота, 29 октября 11 г.
  • 56. Twig, что за ...? Модифицировать twig под себя действительно простосуббота, 29 октября 11 г.
  • 57. Twig, что за ...? Производительностьсуббота, 29 октября 11 г.
  • 58. Twig, что за ...? Каждый шаблон собирается в php objectсуббота, 29 октября 11 г.
  • 59. Twig, что за ...? Один раз после изменения шаблонасуббота, 29 октября 11 г.
  • 60. Twig, что за ...? По-этому быстрсуббота, 29 октября 11 г.
  • 61. Twig, что за ...? и да smarty 3.x быстрее а nativ php еще быстрее http://habrahabr.ru/blogs/php/128083/суббота, 29 октября 11 г.
  • 62. Twig, что за ...? Но,суббота, 29 октября 11 г.
  • 63. Twig, что за ...? twig моложесуббота, 29 октября 11 г.
  • 64. Twig, что за ...? затраты на железо в разы меньше, чем на людейсуббота, 29 октября 11 г.
  • 65. Twig, что за ...? Темная сторонасуббота, 29 октября 11 г.
  • 66. Twig, что за ...? Используем twig как шаблонизатор для генерации кодасуббота, 29 октября 11 г.
  • 67. Twig, что за ...? Doctrine 2 Symfony 2суббота, 29 октября 11 г.
  • 68. Twig, что за ...? Ложные ожидания http://david.heinemeierhansson.com/arc/000405.htmlсуббота, 29 октября 11 г.
  • 69. Twig, что за ...? native phpсуббота, 29 октября 11 г.
  • 70. Twig, что за ...? + Templating componentсуббота, 29 октября 11 г.
  • 71. Twig, что за ...? мы уже имеем • layouts • наследование • слоты • хелперысуббота, 29 октября 11 г.
  • 72. Twig, что за ...? Что выбрать?суббота, 29 октября 11 г.
  • 73. Twig, что за ...? Решать ВАМ!суббота, 29 октября 11 г.
  • 74. Twig, что за ...? Еще есть вопросы?суббота, 29 октября 11 г.
  • 75. Twig, что за ...? Alex Demchenko http://451f.com.ua http://lazy-ants.deсуббота, 29 октября 11 г.