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

Like this? Share it with your network

Share

Twig, что за..

  • 1,840 views
Uploaded on

twig tempalte en

twig tempalte en

More in: Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,840
On Slideshare
1,834
From Embeds
6
Number of Embeds
3

Actions

Shares
Downloads
15
Comments
0
Likes
4

Embeds 6

http://a0.twimg.com 3
http://www.sfexception.com 2
http://www.linkedin.com 1

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 г.