PHP, разработка и рок-н-ролл

Манифест «Энтерры» по итогам семинара о микрофреймворках PHP

Мы продолжаем просвещаться на семинарах, которые регулярно проходят в офисе и на которых мы обсуждаем разные технологии разработки. Темой очередного стали микрофреймворки PHP, их задачи, внутреннее устройство и функциональные возможности.

«Меньше кода, а не больше», – таков главный вывод, который мы вынесли с семинара. А основные тезисы зафиксировали в манифесте PHP-разработчика, прямо как программист Эд Финклер в своем «The MicroPHP Manifesto», где он сравнил разработку с рок-н-роллом, а кодеров – с рок-звездами, и провозгласил, что лучше играть офигительно мощные аккорды в панк-рок группе и качать зал, чем писать претензионные рок-оперы.

Нам близка позиция Финклера и поэтому мы торжественно заявляем, что готовы делать сайты и приложения не на многословных решениях и сложноподчиненных библиотеках, а на легковесной основе – микрофреймворках.

Преамбула

  • Язык PHP, несмотря на почтенный возраст, по-прежнему остается востребованным. 80% всех сайтов написаны именно на нем. Но за 20 лет существования он успел обрасти целым набором ненужных и многоуровневых компонентов, которые страшно выглядят и так же страшно не работают.
  • Монструозные full-stack фреймворки типа Zend Framework и F: Symphony, конечно, хороши, и обладают кучей разных возможностей, однако требуют много лишних телодвижений и сильно тормозят процесс разработки. Код в таком «монстре» за пять минут не поправишь и не отредактируешь, так как приходится продираться сквозь бесчисленное множество файлов и директорий. К тому же на небольших проектах все эти примочки не нужны – хватает базового функционала.

Решение

  • Здесь на помощь спешат микрофреймворки. Ключевая часть слова – «микро». Это своего рода каркас сайта или приложения, на который затем как на шампур постепенно нанизывают шашлык – формы обратной связи, кнопки, пуши и так далее.
  • «Начинка» микрофреймворков состоит из роутинга, базовой реализации MVC («Модель-Представление-Контроллер»), обработки HTTP-запросов, обработки ошибок. Это самый минимум, который необходим, чтобы быстро запустить любое приложение. Кроме того, микрофреймворки расширяемы – базовую настройку спокойно можно менять и дополнять.
  • В микрофреймворках обычно отсутствуют такие функции, как ORM, кэширование, шаблонизация, мультиязычность, аутентификация и валидация форм.
  • Микрофреймворки – очень хороший инструмент, когда стоит задача написать мэйлер или какой-то другой промежуточный компонент системы, сделать прототип функционала и показать заказчику на начальных этапах разработки, создать REST API для мобильных приложений или расширить функционал уже существующей системы. Допустим, сайт на CMS работает давно, и к нему внезапно захотелось добавить чего-нибудь эдакого.
  • Микрофреймворки прекрасно подойдут и для создания простых сайтов, например, сайтов-визиток. Когда использовать WordPress как-то не айс, ведь мы же крутые ребята, а Zend Framework слишком громоздкий для нескольких страниц, микрофреймворки – самое то.

Фреймворки

Есть очень много PHP-микрофреймворков. Может показаться, что их даже больше, чем для других языков. Самые популярные среди них – Lumen, Slim, Silex, и Phalcon Micro.

Lumen

  • Самый молодой микрофреймворк из всех представленных, на основе Laravel.
  • Поддерживает версию PHP 5.4 и выше.
  • Довольно быстрый – на втором месте по скорости среди перечисленных.
  • Подойдет для разработки сверхбыстрых микросервисов и API.
  • Занимает на диске около 10 МБ. Многовато для «микро».
  • Имеет хорошую документацию и может легко обновиться до Laravel – более мощного фреймворка.

Slim

  • Поддерживает версию PHP 5.5 и выше.
  • Функционал сильно ограничен: фреймворк, в отличии от других, не содержит встроенных возможностей для работы с базами данных.
  • Имеет HTTP-роутер и поддержку PSR-7 (HTTP message interfaces) – набор PHP интерфейсов, описывающих HTTP запрос и HTTP ответ. Это позволяет быстро реагировать на запросы HTTP.

Silex

  • Микрофреймворк от создателей Symfony2.
  • Поддерживает версию PHP 5.5.9 и выше.
  • Подойдет и для больших проектов.
  • В два раза медленнее и неповоротливее Lumen.
  • Чтобы юзать этот фреймворк, надо хотя бы в общих чертах знать Symfony. А иначе будет ох как тяжко. Но как раз благодаря связи с Symfony он может быть легко интегрирован с другими библиотеками, а встроенные модули помогут не наделать лишнего.
  • Phalcon Micro

  • Не совсем микрофреймворк в обычном понимании, а скорее расширение для создания сайтов и приложений на PHP.
  • Поддерживает версию PHP 5.5 и выше.
  • Взаимодействует непосредственно с PHP, поэтому считается самым быстрым.
  • Имеет отличную документацию и все стандартные компоненты, включая ORM.
  • Тем не менее, тоже не совершенен – если где-то затеряется одинокий баг, чтобы его исправить, придется подучить C или Zephir, потому что расширение сделано на их основе.
  • Презентация семинара

    Всем фреймворк, всем рок!

    Comments

    comments


    © 2001-2018 Энтерра Софт - Разработка программного обеспечения на заказ.

    Entries (RSS).