Название книги: Один год с Symfony
Год: 2017
Авторы: Matthias Noback и Dmitry Bykadorov (переводчик)
Страниц: 187
Язык: Русский
Формат: pdf, fb2, epub, mobi
Размер: 8.30 MB, 8.75 MB, 4.31 MB, 5.72 MB
Описание книги “Один год с Symfony (2017)”:
Я написал эту книгу для разработчиков, которые хорошо знают PHP, но с Symfony2 знакомы несколько недель, может быть месяцев. Я предполагаю, что вы прочли официальную документацию Symfony2 и уже знакомы с основами создания приложения на Symfony2. Я также полагаю, что вы уже знаете базовую структуру приложения (стандартную структуру директорий, как создать или подключить бандл), как создать контроллер и сконфигурировать маршрутизатор для него, как создавать формы и Twig шаблоны.
Я также полагаю, что вы успели поработать с какой-либо библиотекой для взаимодействия с базами данных, например Doctrine ORM, Doctrine Mongo DB ODM, Propel, и так далее. Тем не менее, в этой книге для упрощения я буду использовать только Doctrine. Если вы используете другую библиотеку для сохранения объектов, вы, вероятно, сможете разобраться, как
применить идеи, изложенные в этой книге, к коду, написанному под вашу библиотеку.
Так как эта книга только про Symfony 2, с данного момента я буду писать просто “Symfony” – это выглядит более элегантно. Всё, что я скажу о Symfony, будет относиться к версии 2. Я написал и протестировал примеры кода для этой книги на Symfony 2.3. Тем не менее, они могут быть вполне применимы к Symfony 2.1.* и 2.2.* и, возможно, к Symfony 2.0.* (@dbykadorov: версия 3 конечно имеет отличия от версии 2, но большинство сказанного, особенно базовые принципы разработки типа “low coupling” – будут также справедливы и для неё. Я постараюсь отметить эти отличия в ходе перевода и протестировать все примеры на Symfony 3.2). В этой книге я покажу примеры кода самого фреймворка Symfony. Для удобства отображения на странице и большей читабельности, иногда я немного модифицировал его.
Оглавление:
I От запроса до ответа
HttpKernelInterface
Загрузка ядра
Бандлы и расширения контейнера
Создание сервисного контейнера
От Kernel до HttpKernel
События, приводящие к ответу
Ранний ответ
Слушатели kernel.request, о которых вам нужно знать
Определение контроллера для запуска
Возможность замены контроллера
Примечательные слушатели события kernel.controller
Сбор аргументов для выполнения контроллера
Выполнение контроллера
Вход в слой представления (view)
Примечательные слушатели события kernel.view
Фильтрация ответа
Примечательные слушатели события kernel.response
Обработка исключений
Примечательные слушатели события kernel.exception
Подзапросы
Когда используются подзапросы?
II Приёмы внедрения зависимостей
Что такое бандл (bundle)
Приёмы создания сервисов
Обязательные зависимости
Обязательные параметры конструктора
Абстрактные определения для дополнительных аргументов
Вызов обязательных set-методов (setters)
Вызов методов в абстрактных сервисах
Необязательные (опциональные) зависимости
Необязательные аргументы конструктора
Необязательные вызовы set-методов
Коллекции сервисов
Вызов нескольких методов
Лучшее из двух миров
Метки сервисов (tags)
Вызов одного метода
Замена аргумента конструктора
Передаём ID сервисов вместо референсов
Делегирование создания
Не очень полезно
Иногда всё-таки полезно
Создание сервисов вручную
Определение
Аргументы
Таги
Алиасы (псевдонимы)
Класс Configuration
Динамическое добавление тагов
Используем паттерн Стратегия для загрузки сервисов
Загрузка и конфигурирование дополнительных сервисов
Подчищаем класс конфигурации
Конфигурируем сервис, который будем использовать
Полностью динамическое определение сервисов .
Приёмы создания параметров
Файл parameters.yml
Определение и загрузка параметров
Параметры для имени класса
Сборка значений параметров вручную
Определяем параметры в расширениях контейнера
Переопределение параметров при помощи компилятора (compiler pass)
III Структура проекта
Организация слоёв приложения
Тонкие контроллеры
Обработчики форм
Доменные менеджеры
События
События уровня хранения (persistence)
Скачать книгу “Один год с Symfony (2017)”: