ݺߣ

ݺߣShare a Scribd company logo
Фреймворк 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 (20)

12 reasons to love symfony2
12 reasons to love symfony212 reasons to love symfony2
12 reasons to love symfony2
Alexei Smolyanov
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
Roman Dvornov
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Ontico
Использование Symfony
Использование SymfonyИспользование Symfony
Использование Symfony
Media 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-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Ontico
Промышленная разработка ПО. Лекция 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 practices
Igor 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 trenches
Gleb Rybalko
Мой Python всегда со мной!
Мой Python всегда со мной!Мой Python всегда со мной!
Мой Python всегда со мной!
PyNSK
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
Roman Dvornov
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Ontico
Использование Symfony
Использование SymfonyИспользование Symfony
Использование Symfony
Media 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-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Ontico
Промышленная разработка ПО. Лекция 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 practices
Igor 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 trenches
Gleb Rybalko
Мой Python всегда со мной!
Мой Python всегда со мной!Мой Python всегда со мной!
Мой Python всегда со мной!
PyNSK

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