SlideShare a Scribd company logo
1 of 53
Фреймворк Symfony2: основные
возможности и опыт использования
•   Грибанов Антон
•   Ведущий программист компании Amicus
•   Выпускник ВлГУ 2007
•   5 лет в web-разработке
•   Опыт использования Symfony 2 - 1 год
•   shine@amicus.ru

                                           2
Что такое фреймворк?
Программное обеспечение, облегчающее
 разработку и объединение разных
 компонентов большого программного
 проекта.
                              Wikipedia




                                       3
Для чего нужен фреймворк?
•   Ускоряет разработку
•   Оберегает от ошибок
•   Стандартизирует разработку
•   Облегчает доработку и поддержку




                                      4
Symfony и Symfony2
•   Бесплатен
•   Выпускается фирмой Sensio Labs
•   Версия 1.0 вышла в 2007 году
•   Версия 2.0 вышла в 2011 году




                                     5
Что такое Symfony2
•   PHP фреймворк
•   Философия
•   Сообщество




                              6
Сильные стороны Symfony2
•   Скорость работы
•   Гибкость
•   Расширяемость
•   Стабильность
•   Ориентированность на разработчика



                                        7
Symfony2 — это набор компонентов
 •   HttpFoundation — реализует спецификацию http
 •   Routing — конфигурирует каким образом должны
     обрабатываться URI
 •   Form — отвечает за генерацию и обработку форм
 •   Validator — позволяет задавать правила валидации
 •   ClassLoader — автозагрузчик классов
 •   Templating — библиотека для загрузки/рендеринга
     шаблонов
 •   Security — библиотека для решения вопросов
     безопасности в вашем приложении
 •   Translation — фреймворк для перевода строк в вашем   8

     приложении
Мощь Symfony2 в бандлах
•   Бандл (англ. Bundle) — каталог, содержащий набор
    файлов (php-скрипты, css-стили,js-скрипты),
    реализующий один функионал.
•   В состав Symfony2 standart edition входит несколько
    бандлов:
    ●   SensioFrameworkExtraBundle
    ●   SensioGeneratorBundle
    ●   JMSSecurityExtraBundle
    ●   и др.
•   http://knpbundles.com
                                                          9
Как работает Symfony2




                        10
Структура каталогов приложения
         на Symfony2




                                 11
Создание страниц
•   Необходимо создать свой бандл
    •   Руками
    •   С помощью встроенного генератора:
        –   php app/console generate:bundle --
            namespace=Acme/HelloBundle --
            format=yml




                                                 12
Подключение вашего бандла




                            13
Добавление конфигурации
        адресов




                          14
Добавление конфигурации
        адресов




                          15
Простейший контроллер




                        16
Контроллер с использованием
      шаблонизатора




                              17
Шаблон twig




              18
Общий шаблон twig




                    19
Более продвинутый роутинг




                            20
Генерация ссылок




                   21
Возможности шаблонов twig




                            22
Работа c БД. Doctrine
•   Doctrine DBAL
•   Doctrine ORM
•   Doctrine ODM




                                 23
Работа с БД. Doctrine




                        24
Работа с БД. Doctrine




                        25
26
Консольные команды Doctrine
•   php app/console
    doctrine:database:create
•   php app/console
    doctrine:generate:entities
    Acme/StoreBundle/Entity/Product
•   php app/console
    doctrine:schema:update --force

                                      27
Сохранение объектов




                      28
Выборка объектов из БД




                         29
Выборка объектов из БД




                         30
Работа с формами




                   31
Класс формы




              32
Рендеринг формы в шаблоне




                            33
Рендеринг формы в шаблоне




                            34
Обработка формы




                  35
Сохранение данных
  из формы в БД




                    36
Компонент Security




                     37
Компонент Security




                     38
Компонент Security




                     39
Компонент Security




                     40
Компонент Security




                     41
Удобные аннотации




                    42
Удобные аннотации




                    43
Еще компоненты
•   Translation
•   Validation
•   Service Container
•   Twig
•   Monolog
•   SwitfMailer

                               44
Тулбар для отладки




                     45
Панель Config




                46
Панель Request




                 47
Панель Events




                48
Панель Logs




              49
Панель Security




                  50
Панель Doctrine




                  51
Ресурсы по Symfony2
•   http://symfony.com/
•   http://groups.google.com/group/symfony2
•   http://symfony-gu.ru/ru/
•   http://habrahabr.ru/tag/symfony2/
•   http://blog.stfalcon.com/category/work/programming/symfony2/




                                                                   52
Вопросы?




           53

More Related Content

Similar to Основные возможности Symfony 2

12 reasons to love symfony2
12 reasons to love symfony212 reasons to love symfony2
12 reasons to love symfony2Alexei Smolyanov
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаRoman Dvornov
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
 
Использование Symfony
Использование SymfonyИспользование Symfony
Использование SymfonyMedia Gorod
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорьdrupalconf
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только одинHappyDev
 
История одной трансформации: как Magento 1 разработчику быстро переориентиров...
История одной трансформации: как Magento 1 разработчику быстро переориентиров...История одной трансформации: как Magento 1 разработчику быстро переориентиров...
История одной трансформации: как Magento 1 разработчику быстро переориентиров...Magecom UK Limited
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтендViacheslav Slinko
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Ontico
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьPVasili
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинSergey Xek
 
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыПромышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыMikhail Payson
 
WebCamp: Developer Day: Разработка фронтенда: от кузницы до металлургического...
WebCamp: Developer Day: Разработка фронтенда: от кузницы до металлургического...WebCamp: Developer Day: Разработка фронтенда: от кузницы до металлургического...
WebCamp: Developer Day: Разработка фронтенда: от кузницы до металлургического...GeeksLab Odessa
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуИгорь Родионов
 
Puppet development kit and best practices
Puppet development kit and best practicesPuppet development kit and best practices
Puppet development kit and best practicesIgor Kurochkin
 
Роман Еникеев - PHP или откуда взялся слон
Роман Еникеев - PHP или откуда взялся слонРоман Еникеев - PHP или откуда взялся слон
Роман Еникеев - PHP или откуда взялся слонDataArt
 
Borland C++ Builder освой самостоятельно
Borland C++ Builder освой самостоятельноBorland C++ Builder освой самостоятельно
Borland C++ Builder освой самостоятельноStAlKeRoV
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenchesGleb Rybalko
 
Мой Python всегда со мной!
Мой Python всегда со мной!Мой Python всегда со мной!
Мой Python всегда со мной!PyNSK
 

Similar to Основные возможности Symfony 2 (20)

12 reasons to love symfony2
12 reasons to love symfony212 reasons to love symfony2
12 reasons to love symfony2
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
 
Использование Symfony
Использование SymfonyИспользование Symfony
Использование Symfony
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
История одной трансформации: как Magento 1 разработчику быстро переориентиров...
История одной трансформации: как Magento 1 разработчику быстро переориентиров...История одной трансформации: как Magento 1 разработчику быстро переориентиров...
История одной трансформации: как Magento 1 разработчику быстро переориентиров...
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыПромышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. Инструменты
 
WebCamp: Developer Day: Разработка фронтенда: от кузницы до металлургического...
WebCamp: Developer Day: Разработка фронтенда: от кузницы до металлургического...WebCamp: Developer Day: Разработка фронтенда: от кузницы до металлургического...
WebCamp: Developer Day: Разработка фронтенда: от кузницы до металлургического...
 
Непрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойментуНепрерывная интеграция - шаг к непрерывному деплойменту
Непрерывная интеграция - шаг к непрерывному деплойменту
 
Puppet development kit and best practices
Puppet development kit and best practicesPuppet development kit and best practices
Puppet development kit and best practices
 
Роман Еникеев - PHP или откуда взялся слон
Роман Еникеев - PHP или откуда взялся слонРоман Еникеев - PHP или откуда взялся слон
Роман Еникеев - PHP или откуда взялся слон
 
Borland C++ Builder освой самостоятельно
Borland C++ Builder освой самостоятельноBorland C++ Builder освой самостоятельно
Borland C++ Builder освой самостоятельно
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Мой Python всегда со мной!
Мой Python всегда со мной!Мой Python всегда со мной!
Мой Python всегда со мной!
 

Основные возможности Symfony 2