Помимо стандартного набора поставки Symfony, существует множество бандлов (Bundle) от сторонних разработчиков, которые очень упрощают жизнь при разработке приложения (действительно, зачем изобретать велосипед, если есть готовое решение). Не будем разворачивать спор по поводу нередкого присутствия в бандлах функционала, который никогда не будет использован в вашем приложении — скорость разработки покроет эти достаточно мелкие проблемы. Приведу скромную коллекцию бандлов, сильно упрощающих жизнь.
Для установки бандлов нужно во первых, добавить его в проект, с помощью composer, к примеру:
composer require "presta/sitemap-bundle:~1.4"
Потом подключить в app/AppKernel.php:
public function registerBundles()
{
$bundles = array(
...
new Presta\SitemapBundle\PrestaSitemapBundle(),
)
...
}
Все, бандл установлен и подключен к symfony. Но некоторые бандлы требуют дополнительной конфигурации в app/config/config.yml, читайте мануалы по установке конкретных бандлов.
Собственно, сам список бандлов:
SonataAdminBundle — бандл для построения админки. Позволяет быстро настроить редактируемые entity, со всеми связями и т.д. Для создания админки за 5 минут))) Но если потратить немного время на переопределение шаблонов, можно сделать довольно симпатичную и функциональную админку.
FOSUserBundle — бандл для авторизации. Позволяет создавать пользователей (регистрация, логин и т.д., email-подтверждение и т.д.) Есть все что надо, опять же, для, если нужно что-то быстро запилить. Но даже для сложных решений можно взять за основу.
HWIOauthBundle FosUserBundle не умеет авторизироватся через социальные сервисы. HWIOauthBundle позволяет реализовать авторизацию с использованием социальных сервисов (поддержка огромного количества с коробки, легкая реализация поддержки других).
KnpMenuBundle — для построения меню. Вначале может показаться ненужным, но если протегировать сервисы, и на основании этого автоматически билдить меню при добавлении нового функционала.
PagerfantaBundle — для создания пагинации. (Кормим запрос, можем получить желаемый диапазон). Достаточно удобно, но проблематично кастомизировать внешний вид (приходится добавлять очень своеобразный php-шаблон. Намного удобней в плане кастомизации KnpPaginatorBundle
DoctrineMigrationBundle — для безопасной миграции базы данных, на проде очень будет кстати.
FOSJsRoutingBundle — бандл, позволяющий использовать ваши роуты в js-скриптах
DoctrineFixturesBundle — бандл для работы с фикстурами (фикстуры — это тестовые данные).
AliceBundle — расширеный бандл для работы с фикстурами. Очень полезная фишка — поддерживает загрузку с .yml файлов, а так же референсы, вызов методов и многое другое.
BreadcrumbsBundle — бандл для создания «хлебных крошек». Будет очень полезным при создании функционала блога/форума или чего-то подобного.
PrestaSitemapBundle — для генерации sitemap. Можно это сделать либо путем добавления параметров для роутов, либо с помощью ивентов.
EkoFeedBundle — для построения (и чтения) RSS — фидов.
FOSElasticaBundle — интеграция Elasticsearch и Symfony framework. Реализует подключение, конфигурацию, написание запросов и фильтров.
LiipImagineBundle — бандл для построения миниатюр изображений. Может использовать как GD, так и Imagick. Очень прост в использовании: конфигурируете фильтр, накладываете в твиге на изображение. Лениво будет создан файл в кеше.
Искать бандлы удобно на https://packagist.org/ и http://knpbundles.com/