Презентация к вебинару об устройстве фреймворка symfony 2.
Видеозапись вебинара находится в моём блоге по адресу http://frontend-dev.ru/2012/12/12/symfony2-основы
2. Symfony2
Не просто MVC framework. Symfony – это
гораздо больше.
Возможность использовать компоненты
независимо друг от друга
Частично или полностью используется во
множестве проектов
Огромное сообщество
Философия: не изобретай колесо
Поддержка фич из PHP 5.3
2
4. Composer
Возможности:
Скачивать пакеты и их зависимости
Не требуется установленной системы
контроля версий
Источник: любое место, любая
структура!
Поддержание библиотек в актуальном
состоянии
Автозагрузка
4
8. Symfony2
Bundle:
php app/console generate:bundle --namespace=Blog/BlogBundle --format=yml
• Controller/ Содержит код контроллеров(например: HelloController.php);
• DependencyInjection/ Содержит настройки управления зависимостями
(необязательна);
• Resources/config/ Настройки бандла (например: routing.yml);
• Resources/views/ Хранилище шаблонов, организованных по именам
контроллера (например: Hello/index.html.twig);
• Resources/public/ Публичные файлы (изображения, стили, и т.д.), копируются
в корневую директорию проекта web/ directory командой
assets:install console command;
• Tests/ Директория с тестами.
8
9. Symfony2
Controller:
• Запрос приходит на front controller (app.php)
• Ядро Symfony2 (Kernel) отправляет запрос в роутер
• Запрос разбирается роутером (routing.yml). Определяется имя контроллера.
• Ядро Symfony2 (Kernel) выполняет код контроллера, который обязательно возвращает
объект ответа (Response)
9
10. Symfony2
Резюме:
Для создания страницы требуется выполнить
три простых шага:
- создать роут
- создать контроллер
- создать шаблон
Всё в symfony организованно в бандлы
Настройки можно найти в директори
Resources/config бандла
Глобальные настройки находятся в директории
app/config
10
11. Symfony2
TWIG:
• Быстрый
• Надёжный
• Краткий
• Гибкий
• Лёгкий в освоении
• Расширяемый
• Полностью покрыт тестами
• Хорошо задокументирован
• Безопасный
11
12. Symfony2
TWIG:
• Переменные
{{ foo.bar }}
{{ foo['bar'] }}
• Циклы
{% for user in users %}
<li>{{ user.username|e }}</li>
{% endfor %}
• Условия
{% if users|length > 0 %}
{{ user.username }}
{% endif %}
• Фильтры
{# очищаем от html тегов #}
{{ name|striptags }}
{# переводим всё в верхний регистр #}
{% filter upper %}
This text becomes uppercase
{% endfilter %}
• Вложения
{% include 'sidebar.html' %}
• Комментарии
{# комментарии пишут так #}
12
13. Symfony2
Doctrine2:
Создать базу данных
php app/console doctrine:database:create
Создать сущность
php app/console doctrine:generate:entity --entity="BlogBlogBundle:Post"
Сгенерировать класс
php app/console doctrine:generate:entities BlogBlogBundle
Сгенерировать таблицы в базе
php app/console doctrine:schema:update --force
13
15. Контакты
Евгений Кривошеев, ekrivosheyev@scrumtrek.ru
Никита Филиппов, nfilippov@scrumtrek.ru
Асхат Уразбаев, askhat@scrumtrek.ru
Александр Егурцов, egurtsov@gmail.com
«Тяжело в учении – легко в бою»
SkillTrek – это дистанционный центр компетенций,
где специалисты получают востребованные на
рынке знания и навыки в условиях реальных
проектов с выбором удобной им загрузки
15