ݺߣ

ݺߣShare a Scribd company logo
компонент symfony templating




внедрение в существующий проект
                      Станислав В. Сметанин
                      www.smetanin-online.name
                      stanislaw@smetanin-online.name
                                             Киев - Июль 2010
Кто я? / whoami
  Web-разработчик, в индустрии с 2005 года
  Программирую на PHP 5 лет
  Активно использую symfony 1.x около года
  Фулл-тайм в rubashka-na-zakaz.ru
Поговорим о
  Что такое sf templating component?
  templating как мета-шаблонизатор
  Три кита templating
  Что такое Twig?
  План внедрения
  Ваши вопросы
Что такое sf templating component?
  Часть symfony 2.0
  Один из плеяды components.symfony-project.org
  Лёгкий в использовании шаблонизатор
Templating как мета-шаблонизатор


1. "Simple yet powerful templating
   framework"
2. "The Symfony Templating component
   provides all the tools needed to build
   any kind of template system"
Три кита templating
1. Loaders: "как загрузить шаблон?"
2. Helpers: "как упростить написание шаблонов?"
3. Renderers: "как интерпретировать загруженный шаблон?"
Loaders - как / откуда загружаем шаблон?

  Файловая система
  База данных
  FTP-сервер
  Откуда угодно...
Loader #1 - файловая система
Loader #2 - база данных
Loader #3 - FTP сервер
Loaders - вывод


        Шаблоны могут храниться где угодно!
         вам лишь нужен подходящий loader
          который легко написать самому :)
Helpers - как упростить написание шаблонов?
  Подключение JavaScript - файлов
  Подключение CSS - файлов
  Вывод meta - тэгов
  Любая повторяющаяся функция...
Helper #1 - подключение JavaScript
Helper #2 - подключение Stylesheets
Helper #3 - вывод meta-тэгов
Helpers - вывод


   Выносите типовые функции из шаблонов в хелперы
          они легко пишутся и расширяются
Renderers - как интерпретировать шаблон?
  Plain PHP
  Twig
  Любой другой язык...
Renderer #1 - Plain PHP
Что такое Twig?
"The flexible, fast, and secure template language for PHP"




The sandbox extension can be used to evaluate untrusted code
Renderer #2 - Twig(1)
Renderer #2 - Twig(2)
Renderers - вывод



      Шаблоны могут быть написаны на любом языке
          например Plain PHP, Twig или Smarty
      вам лишь нужно написать небольшой renderer
План внедрения templating

 1.   Layouts
 2.   Slots
 3.   Loaders
 4.   Helpers
 5.   Renderers
 6.   Router
Router(1)
Router(2)
Ваши вопросы
Обратная связь

Website: www.smetanin-online.name

Email:   stanislaw@smetanin-online.name

Twitter: smetanin_online

More Related Content

What's hot (20)

Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестирования
DataArt
Основы Symfony и отличия Sf 3.x от Sf 2.x
Основы Symfony и отличия Sf 3.x от Sf 2.xОсновы Symfony и отличия Sf 3.x от Sf 2.x
Основы Symfony и отличия Sf 3.x от Sf 2.x
IT61
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Positive Hack Days
12 reasons to love symfony2
12 reasons to love symfony212 reasons to love symfony2
12 reasons to love symfony2
Alexei Smolyanov
Install denwer
Install denwerInstall denwer
Install denwer
Vladimir Burdaev
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
COMAQA.BY
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
SQALab
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языке
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языкеКак автоматизировать рутинные задачи или учимся разговаривать на змеином языке
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языке
SQALab
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Positive Hack Days
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
guestb0af15
Full stack веб-разработка используя C# и WebAssembly
Full stack веб-разработка используя C# и WebAssemblyFull stack веб-разработка используя C# и WebAssembly
Full stack веб-разработка используя C# и WebAssembly
Andrei Amialchenia
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
Кафедра высокопроизводительных компьютерных технологий ИМКН УрФУ
Страх и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжинирингаСтрах и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжиниринга
Mikhail Chinkov
Дополнительные материалы от Егора Васильва
Дополнительные материалы от Егора ВасильваДополнительные материалы от Егора Васильва
Дополнительные материалы от Егора Васильва
SQALab
Drupal 8: Теперь со вкусом Symfony
Drupal 8: Теперь со вкусом SymfonyDrupal 8: Теперь со вкусом Symfony
Drupal 8: Теперь со вкусом Symfony
Kate Marshalkina
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
Ontico
ОЛЕКСІЙ ГОЛУБЄВ «Electron. Як використовуючи WEB framework’і створити багатоп...
ОЛЕКСІЙ ГОЛУБЄВ «Electron. Як використовуючи WEB framework’і створити багатоп...ОЛЕКСІЙ ГОЛУБЄВ «Electron. Як використовуючи WEB framework’і створити багатоп...
ОЛЕКСІЙ ГОЛУБЄВ «Electron. Як використовуючи WEB framework’і створити багатоп...
WDDay
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
Positive Hack Days
Net framework
Net frameworkNet framework
Net framework
poverhnost
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестирования
DataArt
Основы Symfony и отличия Sf 3.x от Sf 2.x
Основы Symfony и отличия Sf 3.x от Sf 2.xОсновы Symfony и отличия Sf 3.x от Sf 2.x
Основы Symfony и отличия Sf 3.x от Sf 2.x
IT61
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр КовалевПакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Positive Hack Days
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
COMAQA.BY
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
SQALab
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языке
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языкеКак автоматизировать рутинные задачи или учимся разговаривать на змеином языке
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языке
SQALab
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Positive Hack Days
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
guestb0af15
Full stack веб-разработка используя C# и WebAssembly
Full stack веб-разработка используя C# и WebAssemblyFull stack веб-разработка используя C# и WebAssembly
Full stack веб-разработка используя C# и WebAssembly
Andrei Amialchenia
Страх и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжинирингаСтрах и ненависть в мире релиз-инжиниринга
Страх и ненависть в мире релиз-инжиниринга
Mikhail Chinkov
Дополнительные материалы от Егора Васильва
Дополнительные материалы от Егора ВасильваДополнительные материалы от Егора Васильва
Дополнительные материалы от Егора Васильва
SQALab
Drupal 8: Теперь со вкусом Symfony
Drupal 8: Теперь со вкусом SymfonyDrupal 8: Теперь со вкусом Symfony
Drupal 8: Теперь со вкусом Symfony
Kate Marshalkina
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
Ontico
ОЛЕКСІЙ ГОЛУБЄВ «Electron. Як використовуючи WEB framework’і створити багатоп...
ОЛЕКСІЙ ГОЛУБЄВ «Electron. Як використовуючи WEB framework’і створити багатоп...ОЛЕКСІЙ ГОЛУБЄВ «Electron. Як використовуючи WEB framework’і створити багатоп...
ОЛЕКСІЙ ГОЛУБЄВ «Electron. Як використовуючи WEB framework’і створити багатоп...
WDDay
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
Positive Hack Days

Viewers also liked (7)

Group 42 traditional cuisine
Group 42 traditional cuisineGroup 42 traditional cuisine
Group 42 traditional cuisine
Art School Kazanlak
C:\Fakepath\802 11b Wireless Lan
C:\Fakepath\802 11b Wireless LanC:\Fakepath\802 11b Wireless Lan
C:\Fakepath\802 11b Wireless Lan
iamtheone90
Apr2010
Apr2010Apr2010
Apr2010
beowulf2211
Technical aspects of use of ultrasound nazakat2
Technical aspects of use of ultrasound  nazakat2 Technical aspects of use of ultrasound  nazakat2
Technical aspects of use of ultrasound nazakat2
student of Masters of Textile engineering
Bi idazleen biografiak
Bi idazleen biografiakBi idazleen biografiak
Bi idazleen biografiak
borjacportu
7106 ss summary
7106 ss summary7106 ss summary
7106 ss summary
beowulf2211

Similar to Внедрение компонента templating в существующий проект (20)

Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Alex Demchenko
Symfony2 Best Practices
Symfony2 Best PracticesSymfony2 Best Practices
Symfony2 Best Practices
Mikhail Prosalov
1_symfony_introduction.pptx
1_symfony_introduction.pptx1_symfony_introduction.pptx
1_symfony_introduction.pptx
rdninc
PureMVC and Papervision
PureMVC and PapervisionPureMVC and Papervision
PureMVC and Papervision
Dmitry Kuriksha
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Max Rozdobudko
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Александр Егурцов
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
Sergey Skvortsov
Automation Flex Applications with Selenium rc
Automation  Flex Applications with Selenium rcAutomation  Flex Applications with Selenium rc
Automation Flex Applications with Selenium rc
automated-testing.info
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
-Доминанта
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)
Alexey Kachayev
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
Presentation for students about Laravel.pptx
Presentation for students about Laravel.pptxPresentation for students about Laravel.pptx
Presentation for students about Laravel.pptx
GetOverHere
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.
Igor Shkulipa
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf Conference
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Как работать с legacy проектом, которому больше10 лет? |Денис ВоскобойникКак работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Образовательные мероприятия "Netpeak Talks"
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
-Доминанта
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAP
mikhailshurgulaya
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Alex Demchenko
1_symfony_introduction.pptx
1_symfony_introduction.pptx1_symfony_introduction.pptx
1_symfony_introduction.pptx
rdninc
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Max Rozdobudko
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Александр Егурцов
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
Sergey Skvortsov
Automation Flex Applications with Selenium rc
Automation  Flex Applications with Selenium rcAutomation  Flex Applications with Selenium rc
Automation Flex Applications with Selenium rc
automated-testing.info
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
-Доминанта
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)
Alexey Kachayev
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
Presentation for students about Laravel.pptx
Presentation for students about Laravel.pptxPresentation for students about Laravel.pptx
Presentation for students about Laravel.pptx
GetOverHere
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.
Igor Shkulipa
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf Conference
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
-Доминанта
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAP
mikhailshurgulaya

Внедрение компонента templating в существующий проект

  • 1. компонент symfony templating внедрение в существующий проект Станислав В. Сметанин www.smetanin-online.name stanislaw@smetanin-online.name Киев - Июль 2010
  • 2. Кто я? / whoami Web-разработчик, в индустрии с 2005 года Программирую на PHP 5 лет Активно использую symfony 1.x около года Фулл-тайм в rubashka-na-zakaz.ru
  • 3. Поговорим о Что такое sf templating component? templating как мета-шаблонизатор Три кита templating Что такое Twig? План внедрения Ваши вопросы
  • 4. Что такое sf templating component? Часть symfony 2.0 Один из плеяды components.symfony-project.org Лёгкий в использовании шаблонизатор
  • 5. Templating как мета-шаблонизатор 1. "Simple yet powerful templating framework" 2. "The Symfony Templating component provides all the tools needed to build any kind of template system"
  • 6. Три кита templating 1. Loaders: "как загрузить шаблон?" 2. Helpers: "как упростить написание шаблонов?" 3. Renderers: "как интерпретировать загруженный шаблон?"
  • 7. Loaders - как / откуда загружаем шаблон? Файловая система База данных FTP-сервер Откуда угодно...
  • 8. Loader #1 - файловая система
  • 9. Loader #2 - база данных
  • 10. Loader #3 - FTP сервер
  • 11. Loaders - вывод Шаблоны могут храниться где угодно! вам лишь нужен подходящий loader который легко написать самому :)
  • 12. Helpers - как упростить написание шаблонов? Подключение JavaScript - файлов Подключение CSS - файлов Вывод meta - тэгов Любая повторяющаяся функция...
  • 13. Helper #1 - подключение JavaScript
  • 14. Helper #2 - подключение Stylesheets
  • 15. Helper #3 - вывод meta-тэгов
  • 16. Helpers - вывод Выносите типовые функции из шаблонов в хелперы они легко пишутся и расширяются
  • 17. Renderers - как интерпретировать шаблон? Plain PHP Twig Любой другой язык...
  • 18. Renderer #1 - Plain PHP
  • 19. Что такое Twig? "The flexible, fast, and secure template language for PHP" The sandbox extension can be used to evaluate untrusted code
  • 20. Renderer #2 - Twig(1)
  • 21. Renderer #2 - Twig(2)
  • 22. Renderers - вывод Шаблоны могут быть написаны на любом языке например Plain PHP, Twig или Smarty вам лишь нужно написать небольшой renderer
  • 23. План внедрения templating 1. Layouts 2. Slots 3. Loaders 4. Helpers 5. Renderers 6. Router
  • 27. Обратная связь Website: www.smetanin-online.name Email: stanislaw@smetanin-online.name Twitter: smetanin_online