Post on 12-Jun-2015
description
Фреймворк 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.com9
Как работает 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