Создаем свой Фреймворк на компонентах Symfony2

Я совершенно не фанат Symfony2. У меня нет ни одного проекта на этом фреймворке, и вряд ли когда-нибудь хоть один появится. Это к тому, что я решил перевести цикл статей “Создаем свой Фреймворк на компонентах symfony2” совсем не из-за Symfony2. Этот цикл должен прочесть каждый. Этот цикл про программирование, про ООП, про архитектуру. Этот цикл — best practices разработки проектов на PHP. Изначально, конечно, Фабьен Потенсьер, автор оригинального текста и создатель Symfony2, задумывал эти статьи как рекламу своего фреймворка. Но что-то пошло не так…

Содержание цикла:

Часть 1
Коротко: Bootstrapping, cтандарты оформления кода, установка компонентов через composer, автолоадинг классов
Новые компоненты: ClassLoader

Часть 2
Коротко: Зачем нам фреймворк? HTTP спецификация. Добавляем немного ООП. Безопасны ли компоненты Symfony2?
Новые компоненты: HttpFoundation (Request и Response)

Часть 3
Коротко: Добавляем маршрутизацию и Front controller. Обработка 404. Выносим файлы из корневой директории. Превращаем странички в шаблоны.

Часть 4
Коротко: Реализуем ЧПУ, Роутинг(маршрутизация)
Новые компоненты: Routing (RouteCollection, UrlMatcher, UrlGenerator)

Часть 5
Коротко: Добавляем контроллеры.

Часть 6
Коротко: Выносим контроллеры в отдельные классы.
Новые компоненты: HttpKernel (Controller resolver)

Часть 7
Коротко: Разносим код фреймворка и приложения по своим пространствам имен. Создаем первую модель.

Часть 8
Коротко: Пишем юнит-тесты с помощью PHPUnit. Программируем на уровне интерфейсов. PHPUnit test coverage: смотрим процент покрытия

Часть 9
Коротко: Шаблон «Наблюдатель»: делаем фреймворк расширяемым.
Новые компоненты: EventDispatcher

Часть 10
Коротко: Прозрачное HTTP кэширование.
Новые классы: HttpKernel (HttpKernelInterface, HttpCache)

Часть 11
Коротко: Управление ошибками (обработка исключений).
Новые классы: HttpKernel (ExceptionListener, HttpCache)

Часть 12
Коротко: Dev и Production конфигурации. Управление зависимостями с через контейнер Symfony2
Новые компоненты: DependencyInjection

Не забудьте поделиться статьей с друзьями

Подписывайтесь на меня в соц. сетях

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *