В течении последних нескольких недель шли активные дискуссии на тему сообщества PHP, пакетов и «фракций». Поэтому я решил высказать свою точку зрения на эти вопросы. На сегодняшний день Laravel — самый полноценный эклектичный PHP-фреймворк из всех существующих. Другими словами, Laravel — единственный полноценный фреймворк, который активно борется против фракций (разработки библиотек, подходящих под использование только в определённой среде — прим. пер.).
Laravel, в дополнение к своим собственным библиотекам вроде Eloquent и Blade, также включает целых 23 пакета из открытого сообщества PHP. Используя лучшее из лучшего в мире PHP Laravel создаёт очень активное взаимодействие между им самим и сообществом PHP в целом. Но, что, вероятно, наиболее важно для вас, благодаря этому он позволяет писать обалденные приложения на ракетной скорости.
Мы не хотим просто говорить о сообществе, мы хотим в нём участвовать! Это благословение — направлять и разговаривать с разработчиками такого количества отличных библиотек, и я очень благодарен за то, что с их помощью Laravel становится ещё лучше.
Итак, в этой статье я хочу осветить лишь некоторые из тех замечательных пакетов, которые делают Laravel настолько хорошим.
Те самые библиотеки
Carbon: библиотека для выразительной работы с датами, автор — Brian Nesbitt. Она используется Eloquent для преобразований дат. Благодаря ей работа с датами в PHP становится простой и приятной.
Predis: мощный клиент для Redis авторства Daniele Alessandri. Predis стоит за всем взаимодействием с Redis, которое происходит внутри Laravel, в том числе в драйверах кэширования, сессии и очередей.
Phenstalk: полноценный PHP-клиент для очередей Beanstalkd. Позволяет работать драйверу очередей Beanstalkd Laravel.
SuperClosure: написанная Jeremy Lindblom, эта мощная библиотека позволяет вам упаковывать и извлекать (un/serialize) функции-замыкания (closures). Она используется всякий раз, когда вы помещаете анонимную функцию в очередь.
Whoops: отображает красивую страницу об ошибке, когда Laravel работает в режиме разработки.
Monolog: стандарт де-факто библиотек журналирования для PHP. Используется для любой работы с журналом. Написан в основном Jordi Boggiano.
Boris: действительно превосходная реализация REPL (Read-Eval-Print Loop) для PHP, которая используется для работы консольной команды PHPtinker
.
PasswordCompat: предоставляет безопасное хэширование Bcrypt, которое по умолчанию используется в Laravel. Уже совместима с PHP 5.5. Написана Anthony Ferrara.
Symfony HttpFoundation: очень мощная HTTP-абстракция. Хорошо протестированная и проверенная работой во многих крупных, реальных приложениях. Одна из наиболее важных библиотек, которую мы используем.
Symfony Routing: эта библиотека связывает маршруты Laravel с регулярными выражениями — не такая тривиальная задача, как это может показаться на первый взгляд! Она также отлично справляется со многими спорными случаями.
Symfony HttpKernel: HttpKernel позволяет работать с исключениями HTTP, которые используются при генерации ответов 404 в Laravel. Также, и это наиболее важно, она содержит интерфейс PHPHttpKernelInterface
, который используется как низкоуровневая абстракция в приложениях Laravel.
Symfony BrowserKit: откуда берётся вся эта функциональность для тестов, которую предлагает Laravel? Это всё благодаря Symfony BrowserKit.
StackPHP: этот проект предлагает структуру для создания повторно используемых, независимых от фреймворков связующих библиотек (middleware) на уровне HTTP (см. тж. статью «Laravel 4.1 Http-middleware» — прим. пер.). Используется в Laravel 4.1+ для шифрования cookie, сессий и других вещей. Создана двумя наиболее почитаемыми мной PHP-разработчиками: Igor Wiedler и Beau Simensen.