Уже около полугода для разработки веб-проектов используем Symfony 2. Накопился список полезных библиотек и бандлов, не входящих в состав symfony-standard, но значительно экономящих время и избавляющих от изобретения велосипеда.
Обзор больше теоретический и включает следующие разделы:
Примеры использования и код можно изучить на страницах каждого проекта на github.com или на официальных сайтах, но если будет интересно, некоторые решения можно рассмотреть отдельно.
Вероятно самый функциональный пакет для создания панели управления контентом.
Используя совместно с:
можно организовать сносную «админку», позволяющую управлять:
Имеется:
Для абстракции БД и NoSQL доступны: Doctrine, Propel.
Стабильно работает со стабильной Symfony 2.0.*.
Мы использовали с 2.0.10.
Про SonataAdminBundle уже был пост vitiko.
Сайт проекта
Проект на github.com
Песочница
Более простой и менее функциональный пакет для управления вашими сущностями, но с более удобным (субъективно) механизмом кастомизации. Вся конфигурация описывается в generator.yml для каждой сущности.
Имеется:
Думаю, заслуживает внимания, хотя требует много ручной работы и как показалось много повторяющихся действий. Для каждой сущности приходилось генерировать админ бандл и бандл для вывода информации в публичной части.
Сайт проекта
Проект на github.com
Песочница
Видос
Один из самых популярных бандлов для Symfony 2, который предоставляет широкий функционал для управления пользователями. В пакете реализованы основные задачи, возникающие при работе с пользователями:
Используется во многих других проектах для Symfony 2.
Проект на github.com
Видео мануал
Используется для интеграции FOSUserBundle в SonataAdminBundle, управления пользователями через административный интерфейс и расширения функциональности FOSUserBundle.
Проект на github.com
Этот бандл интегрирует Facebook PHP/JavaScript SDK's в ваш проект на Symfony 2. Кроме того он предоставляет собственный провайдер аутентификации, который позволяет пользователям авторизоваться в проекте через Facebook (кнопка, «Войти через Facebook»). При этом поддерживается интеграция с FOSUserBundle.
Можно использовать для Facebook Canvas App на базе Symfony 2, но потребуется писать свой AuthenticationListener для кроссбраузерной работы сессий (p3p и блокировка cookie из iframe в ie7/8).
Проект на github.com
Всем известная библиотека для работы с xls таблицами.
Удобно использовать для импорта данных (заказчики любят предоставлять данные в xls) в БД и экспорта в xls (статистика, отчеты и т.д.)
Сайт проекта и документация
Проект на github.com (неофициальный репо)
Бандл предоставляющий различные сервис контейнеры (DI) для работы с PHPExcel. Позволяет быстро создавать контроллеры, генерирующие xls в качестве ответа (Response).
Проект на github.com
Бандл с полезным инструментарием для создания RESTFul веб сервисов.
Возможности:
Очень пригодился при разработке серверной части мобильного приложения.
Проект на github.com
Бандл позволяющий организовать простую аутентификацию запросов к вашему API. Основывается на расширенной HTTP аутентификации. В качестве расширения используется открытая спецификация безопасности для веб-сервисов — WSSE. В частности, адаптированный под HTTP Authentication, алгоритм WSSE Username Token, заимствованный из SOAP.
Также пригодился при разработке серверной части мобильного приложения.
Atom Authentication
Проект на github.com
Информация на symfony.com
OAuth 2.0 сервер на PHP. В настоящее время реализован OAuth 2.0 draft 20.
Проект на Google Code
Проект на github.com (fork)
Бандл интегрирующий возможности OAuth2-PHP в проект на Symfony 2.
Пригодится для проектов желающих реализовать доступ и авторизацию к собственному API по протоколу OAuth 2.0.
В реальных проектах не использовал, но при тестировании показалось, что неплохо реализован (Если у кого-то есть опыт использования в бою, отпишитесь в комментариях).
Проект на github.com
Библиотека предоставляющая объектно-ориентированный интерфейс для создания навигации на вашем сайте.
Проект на github.com
Также один из популярнейших бандлов для Symfony 2, который интегрирует библитеку KnpMenu в ваш проект и предоставляет различные инструменты для гибкого управления навигацией (меню) сайта:
Использовался во всех проектах.
Проект на github.com
Библиотека для работы с изображениями в привычном объектно-ориентированном стиле. В зависимости от выбранного изображения могут потребоваться:
Возможности:
Очень удобная библиотека для создания миниатюр, но это лишь малая часть всех возможностей.
На создание, автора вдохновила библиотека PIL в Python.
Сайт проекта и API
Проект на github.com
Бандл для простой манипуляции изображениями в вашем проекте на Symfony 2.
Позволяет настраивать различные фильтры для вывода изображений из вашей коллекции.
Настройки фильтров:
Имеются Twig теги (функции), для вывода соответствующего изображения с выбранным фильтром. Также в бандле реализован пользовательский загрузчик маршрутов. При обращении к определенному контроллеру, он (контроллер) генерирует изображение и отдает его в качестве ответа сервера.
Использовал данный бандл для динамической генерации миниатюр:
Пришлось правда создать свое Twig расширение, с функцией генерирующей путь к картинке, с учетом указанного фильтра, настроек бандла и своих требований.
Удобно! Как вариант, можно испоьзовать для серверной части мобильных приложений, при смене дизайн концепции, достаточно будет описать новый фильтр.
Проект на github.com
Медиа-библиотека, позволяющая управлять (загружать, удалять, организовывать в галереи) различными медиа (файлы, видео, изображения) в вашем проекте на Symfony 2 + SonataAdminBundle.
Каждый тип управляется своим сервис провайдером, который отвечает за:
Медиа файлы могут быть связаны с контекстом. Контекст позволяет группировать наборы медиа, например: новости — news context, пользователи — user context. Поскольку требования к медиа файлам могут быть разными для каждого контекста, то контекст определяет фильтры (настраиваются в конфиге), которые будут использоваться для изменения медиа.
Настройки фильтров:
Пакет предоставляет возможность реализовать свою логику ресайза и кадрирования для своих фильтров, а также в качестве альтернативы LiipImagineBundle (fork AvalancheImagineBundle).
Доступные сервисы:
В целом мощный пакет, но есть ряд мелких косяков, которые приходиться фиксить при использовании. Например, отображение превью картинки при редактировании сущности использующей привязку к Media.
Сайт проекта
Проект на github.com
Бандл расширяющий функционал Symfony 2 Form Component, с помощью jQuery, jQuery UI и различных плагинов.
Некоторые форм-типы и виджеты, которые предоставляет бандл:
Вряд ли вам понадобится использовать все возможности в одном проекте, но подсмотреть некоторые реализации будет полезно и может сэкономить время.
Проект на github.com
Бандл добавляет поддержку форм-типа «captcha» для Symfony 2 Form Component.
Содержит базовый набор настроек, но при желании, можно добавить/изменить требуемую функциональность:
Мне правда нужно было очень быстро, поэтому пришлось фиксить сорцы бандла, но в следующий раз сделаю PR, честно)))
Проект на github.com
Думаю не стоит рассказывать, что такое Sphinx, все должны знать. Так вот SphinxBundle – бандл позволяющий работать с поисковыми индексами Sphinx. Для работы потребуется библиотека sphinxapi.php с официального сайта.
В индексе, по таблице сущности (Entity по которой выполняется поиск), должен присутствовать идентификатор (id) каждой сущности. После запроса к поисковому демону, по идентификаторам (id) найденных записей, из БД получаются сами сущности релевантные поисковому запросу, с возможностью постраничной навигации.
Хотя бандл предоставляет не так много возможностей, но как база для реализации своих задач мне неплохо помог. Например, пришлось реализовывать свою логику для работы с несколькими сущностями (индекс sphinx-а, тоже должен быть построен по нескольким таблицам сущностей), чтобы потом в представлении (View) для каждой сущности использовать персональные «поисковые сниппеты» (текстовые блоки, отличающиеся для каждой сущности) и маршруты (route) для генерации ссылок, т.к. сущности представлялись в разных разделах сайта.
Проект на github.com
Библиотека для «пагинации» наборов данных, на PHP 5.3.
Использует различные классы-адаптеры, в зависимости от типов данных, которые требуется разбивать на страницы:
Есть возможность управлять (View) пейджера, несколько готовых вариантов, а также возможность разносторонней кастомизации.
Проект на github
Бандл, позволяющий быстро и легко интегрировать библиотеку Pagerfanta в ваш проект на Symfony 2. А также использовать дополнительные возможности, такие как: Twig функции, пользовательские шаблоны и другие.
Использовал практически во всех проектах. Была проблема с DoctrineORMAdapter при пагинации объекта Doctrine\ORM\NativeQuery, но все же решение было найдено и для запросов строящихся с использованием NativeQuery писался кастомный адаптер. Сейчас вроде как пофикшено, но только для Doctrine ORM 2.2 (если я правильно понял этот commit)
Проект на github.com
Библиотека, обеспечивающая уровень абстракции файловой системы, и позволяющая разрабатывать приложения, в которых подразумевается использование большого кол-ва медиа файлов, не задумываясь о том, где и как они будут храниться.
Использование абстракции в данном случае дает вам возможность, изменять место хранения ваших файлов, без особого вмешательства в код. Предположим, ваш проект стал популярным, и возникла проблема с местом под файлы, вы можете просто изменить используемую файловую систему с локальной на файловый хостинг Amazon S3 и масштабировать ваши медиа данные дальше без особых проблем. А для ускорения работы медленных файловых систем (Amazon S3, FTP), предусмотрен механизм локального кеширования.
Данная библиотека обеспечивает уровень абстракции файловой системы для SonataMediaBundle.
Довелось использовать только с локальной файловой системой, интересно услышать комментарии тех, кто использовал с FTP или Amazon S3.
Проект на github.com
HTTP клиент на PHP5.3. Позволяет посылать HTTP запросы (используя FileGetContents, Curl, MultiCurl), получать ответы, работать с Cookie, HTTP заголовками, отправлять формы, работать с историей запросов и другое.
Думаю найдется применение)
Проект на github.com
Бандл интегрирует библиотеку Buzz в ваш проект на Symfony 2 в виде сервис контейнера (DI).
Проект на github.com
Фууух!
Пока все…
А да, для поиска бандлов удобно использовать knpbundles.com
Обзор больше теоретический и включает следующие разделы:
- Админгенераторы
- Пользователи
- Импорт/экспорт xls
- API и OAuth 2.0
- Меню/навигация
- Мультимедиа
- Формы
- Поиск
- Пагинация
- Файловая система
- HTTP клиент
Примеры использования и код можно изучить на страницах каждого проекта на github.com или на официальных сайтах, но если будет интересно, некоторые решения можно рассмотреть отдельно.
Админгенераторы
SonataAdminBundle
Вероятно самый функциональный пакет для создания панели управления контентом.
Используя совместно с:
- SonataDoctrineORMAdminBundle/SonataDoctrinePhpcrAdminBundle/ SonataDoctrineMongoDBAdminBundle/SonataPropelAdminBundle
- SonataUserBundle
- SonataMediaBundle
- FOSUserBundle
можно организовать сносную «админку», позволяющую управлять:
- Пользователями
- Группами пользователей
- Медиа (изображения, видео, YouTube, Vimeo, др. файлы)
- Пользовательскими сущностями и отношениями между сущностями
Имеется:
- dashboard
- login/logout
- меню
- расширяемые фильтры для списков
- виджеты и обработчики, для связей между сущностями (manyToOne, manyToMany и т.д.)
- групповые операции
- импорт списков в json, csv, xml, xls
- переводы интерфейса
Для абстракции БД и NoSQL доступны: Doctrine, Propel.
Стабильно работает со стабильной Symfony 2.0.*.
Мы использовали с 2.0.10.
Про SonataAdminBundle уже был пост vitiko.
Сайт проекта
Проект на github.com
Песочница
AdmingeneratorBundle
Более простой и менее функциональный пакет для управления вашими сущностями, но с более удобным (субъективно) механизмом кастомизации. Вся конфигурация описывается в generator.yml для каждой сущности.
Имеется:
- меню
- фильтры для списков, по значениям полей сущностей
- виджеты и обработчики, для связей между сущностями (manyToOne, manyToMany и т.д.)
Думаю, заслуживает внимания, хотя требует много ручной работы и как показалось много повторяющихся действий. Для каждой сущности приходилось генерировать админ бандл и бандл для вывода информации в публичной части.
Сайт проекта
Проект на github.com
Песочница
Видос
Пользователи
FOSUserBundle
Один из самых популярных бандлов для Symfony 2, который предоставляет широкий функционал для управления пользователями. В пакете реализованы основные задачи, возникающие при работе с пользователями:
- Базовые свойства пользователей: активность, имя, логин, пароль, email, дата создания/изменения/последней авторизации и т.д. С возможностью гибкого расширения
- Группы пользователей с привязкой к ролям Symfony 2
- Регистрация пользователей с подтверждением по email
- Восстановление пароля
- Профиль пользователя
- Различные формы и обработчики
- Различные схемы хранения данных: БД, NoSQL
Используется во многих других проектах для Symfony 2.
Проект на github.com
Видео мануал
SonataUserBundle
Используется для интеграции FOSUserBundle в SonataAdminBundle, управления пользователями через административный интерфейс и расширения функциональности FOSUserBundle.
Проект на github.com
FOSFacebookBundle
Этот бандл интегрирует Facebook PHP/JavaScript SDK's в ваш проект на Symfony 2. Кроме того он предоставляет собственный провайдер аутентификации, который позволяет пользователям авторизоваться в проекте через Facebook (кнопка, «Войти через Facebook»). При этом поддерживается интеграция с FOSUserBundle.
Можно использовать для Facebook Canvas App на базе Symfony 2, но потребуется писать свой AuthenticationListener для кроссбраузерной работы сессий (p3p и блокировка cookie из iframe в ie7/8).
Проект на github.com
Импорт/экспорт xls
PHPExcel
Всем известная библиотека для работы с xls таблицами.
Удобно использовать для импорта данных (заказчики любят предоставлять данные в xls) в БД и экспорта в xls (статистика, отчеты и т.д.)
Сайт проекта и документация
Проект на github.com (неофициальный репо)
ExcelBundle
Бандл предоставляющий различные сервис контейнеры (DI) для работы с PHPExcel. Позволяет быстро создавать контроллеры, генерирующие xls в качестве ответа (Response).
Проект на github.com
API и OAuth 2.0
FOSRestBundle
Бандл с полезным инструментарием для создания RESTFul веб сервисов.
Возможности:
- View хелпер для рендеринга ответа (Response) в нужном формате (json, xml)
- Пользовательский загрузчик маршрутов (routes) для генерации url-ов ресурсов в соответствии с REST концепцией
- Автоматическая генерация маршрутов (routes) для ресурсов веб-службы по названию метода контроллера (getNewsAction() -> /api/news)
- Exception контроллер для отправки соответствующих HTTP статусов
Очень пригодился при разработке серверной части мобильного приложения.
Проект на github.com
EscapeWSSEAuthenticationBundle
Бандл позволяющий организовать простую аутентификацию запросов к вашему API. Основывается на расширенной HTTP аутентификации. В качестве расширения используется открытая спецификация безопасности для веб-сервисов — WSSE. В частности, адаптированный под HTTP Authentication, алгоритм WSSE Username Token, заимствованный из SOAP.
Также пригодился при разработке серверной части мобильного приложения.
Atom Authentication
Проект на github.com
Информация на symfony.com
OAuth2-PHP
OAuth 2.0 сервер на PHP. В настоящее время реализован OAuth 2.0 draft 20.
Проект на Google Code
Проект на github.com (fork)
FOSOAuthServerBundle
Бандл интегрирующий возможности OAuth2-PHP в проект на Symfony 2.
Пригодится для проектов желающих реализовать доступ и авторизацию к собственному API по протоколу OAuth 2.0.
В реальных проектах не использовал, но при тестировании показалось, что неплохо реализован (Если у кого-то есть опыт использования в бою, отпишитесь в комментариях).
Проект на github.com
Меню/навигация
KnpMenu
Библиотека предоставляющая объектно-ориентированный интерфейс для создания навигации на вашем сайте.
Проект на github.com
KnpMenuBundle
Также один из популярнейших бандлов для Symfony 2, который интегрирует библитеку KnpMenu в ваш проект и предоставляет различные инструменты для гибкого управления навигацией (меню) сайта:
- Объектно-ориентированный интерфейс для создания меню различной вложенности и сложности, в том числе на основе данных из БД
- Рендеринг меню в соответствии с пользовательскими шаблонами
- Twig функции
- Подсветка активных пунктов и различные инструменты кастомизации
Использовался во всех проектах.
Проект на github.com
Мультимедиа
Imagine
Библиотека для работы с изображениями в привычном объектно-ориентированном стиле. В зависимости от выбранного изображения могут потребоваться:
- GD2
- Imagick
- Gmagick
Возможности:
- Изменение размера, обрезка изображений
- Drawing API, для создания изображения и нанесения текста на изображение
- Функциональность масок, для работы с прозрачностью изображений
- Создание различных фильтров на базе вышеописанных возможностей
Очень удобная библиотека для создания миниатюр, но это лишь малая часть всех возможностей.
На создание, автора вдохновила библиотека PIL в Python.
Сайт проекта и API
Проект на github.com
AvalancheImagineBundle
Бандл для простой манипуляции изображениями в вашем проекте на Symfony 2.
Позволяет настраивать различные фильтры для вывода изображений из вашей коллекции.
Настройки фильтров:
- Размер миниатюры
- Коэффициент сжатия
- Метод ресайза/обрезки изображения (outbound/inset)
- Драйвер обработки изображения (gd, imagick, gmagick)
- и другое
Имеются Twig теги (функции), для вывода соответствующего изображения с выбранным фильтром. Также в бандле реализован пользовательский загрузчик маршрутов. При обращении к определенному контроллеру, он (контроллер) генерирует изображение и отдает его в качестве ответа сервера.
Использовал данный бандл для динамической генерации миниатюр:
- В галерею сайта загружаются оригиналы изображений
- Настраиваются требуемые фильтры
- В представлениях выводятся соответствующие настройкам бандла и фильтров пути к изображениям (с помощью twig функции)
- Когда клиент обращается к серверу за изображением, заставляем apache/nginx проверять фактическое существование изображения
- Если картинка существует, сервер отдает ее как статику
- Если нет, то делает rewrite/redirect на соответсвующий котроллер, после чего изображение создается и в последующем отдается статически
Пришлось правда создать свое Twig расширение, с функцией генерирующей путь к картинке, с учетом указанного фильтра, настроек бандла и своих требований.
Удобно! Как вариант, можно испоьзовать для серверной части мобильных приложений, при смене дизайн концепции, достаточно будет описать новый фильтр.
Проект на github.com
SonataMediaBundle
Медиа-библиотека, позволяющая управлять (загружать, удалять, организовывать в галереи) различными медиа (файлы, видео, изображения) в вашем проекте на Symfony 2 + SonataAdminBundle.
Каждый тип управляется своим сервис провайдером, который отвечает за:
- Извлечение метаданных медиа файлов
- Создание миниатюр изображений
- Настройки формы редактирования
- Рендеринг и представление медиа файлов в шаблонах
Медиа файлы могут быть связаны с контекстом. Контекст позволяет группировать наборы медиа, например: новости — news context, пользователи — user context. Поскольку требования к медиа файлам могут быть разными для каждого контекста, то контекст определяет фильтры (настраиваются в конфиге), которые будут использоваться для изменения медиа.
Настройки фильтров:
- Размер миниатюры
- Коэффициент сжатия
- Метод ресайза/обрезки изображения (outbound/inset)
- И другие
Пакет предоставляет возможность реализовать свою логику ресайза и кадрирования для своих фильтров, а также в качестве альтернативы LiipImagineBundle (fork AvalancheImagineBundle).
Доступные сервисы:
- Провайдеры:
- sonata.media.provider.image: Изображение
- sonata.media.provider.file: Файл
- sonata.media.provider.dailymotion: Dailymotion
- sonata.media.provider.vimeo: Vimeo
- sonata.media.provider.youtube: Youtube
- Файловые системы:
- sonata.media.filesystem.local: Локальная файловая система (по умолчанию)
- sonata.media.filesystem.ftp: FTP
- sonata.media.filesystem.s3: Amazon S3
- Различные CDN
В целом мощный пакет, но есть ряд мелких косяков, которые приходиться фиксить при использовании. Например, отображение превью картинки при редактировании сущности использующей привязку к Media.
Сайт проекта
Проект на github.com
Формы
GenemuFormBundle
Бандл расширяющий функционал Symfony 2 Form Component, с помощью jQuery, jQuery UI и различных плагинов.
Некоторые форм-типы и виджеты, которые предоставляет бандл:
- Captcha GD
- ReCaptcha
- Tinymce
- Datepicker
- Slider
- Autocomplete
- File (реализован библиотекой uploadify, можно использовать с jCrop)
- Image
- Colorpicker
- Rating
- Chosen
Вряд ли вам понадобится использовать все возможности в одном проекте, но подсмотреть некоторые реализации будет полезно и может сэкономить время.
Проект на github.com
CaptchaBundle
Бандл добавляет поддержку форм-типа «captcha» для Symfony 2 Form Component.
Содержит базовый набор настроек, но при желании, можно добавить/изменить требуемую функциональность:
- Цвет фона
- Цвет текста
- Шрифт
- Размер шрифта
- Искажения
Мне правда нужно было очень быстро, поэтому пришлось фиксить сорцы бандла, но в следующий раз сделаю PR, честно)))
Проект на github.com
Поиск
SphinxBundle
Думаю не стоит рассказывать, что такое Sphinx, все должны знать. Так вот SphinxBundle – бандл позволяющий работать с поисковыми индексами Sphinx. Для работы потребуется библиотека sphinxapi.php с официального сайта.
В индексе, по таблице сущности (Entity по которой выполняется поиск), должен присутствовать идентификатор (id) каждой сущности. После запроса к поисковому демону, по идентификаторам (id) найденных записей, из БД получаются сами сущности релевантные поисковому запросу, с возможностью постраничной навигации.
Хотя бандл предоставляет не так много возможностей, но как база для реализации своих задач мне неплохо помог. Например, пришлось реализовывать свою логику для работы с несколькими сущностями (индекс sphinx-а, тоже должен быть построен по нескольким таблицам сущностей), чтобы потом в представлении (View) для каждой сущности использовать персональные «поисковые сниппеты» (текстовые блоки, отличающиеся для каждой сущности) и маршруты (route) для генерации ссылок, т.к. сущности представлялись в разных разделах сайта.
Проект на github.com
Пагинация
Pagerfanta
Библиотека для «пагинации» наборов данных, на PHP 5.3.
Использует различные классы-адаптеры, в зависимости от типов данных, которые требуется разбивать на страницы:
- ArrayAdapter
- MongoAdapter
- MandangoAdapter
- DoctrineORMAdapter
- DoctrineODMMongoDBAdapter
- DoctrineCollectionAdapter
- PropelAdapter
- SolariumAdapter
Есть возможность управлять (View) пейджера, несколько готовых вариантов, а также возможность разносторонней кастомизации.
Проект на github
WhiteOctoberPagerfantaBundle
Бандл, позволяющий быстро и легко интегрировать библиотеку Pagerfanta в ваш проект на Symfony 2. А также использовать дополнительные возможности, такие как: Twig функции, пользовательские шаблоны и другие.
Использовал практически во всех проектах. Была проблема с DoctrineORMAdapter при пагинации объекта Doctrine\ORM\NativeQuery, но все же решение было найдено и для запросов строящихся с использованием NativeQuery писался кастомный адаптер. Сейчас вроде как пофикшено, но только для Doctrine ORM 2.2 (если я правильно понял этот commit)
Проект на github.com
Файловая система
Gaufrette
Библиотека, обеспечивающая уровень абстракции файловой системы, и позволяющая разрабатывать приложения, в которых подразумевается использование большого кол-ва медиа файлов, не задумываясь о том, где и как они будут храниться.
Использование абстракции в данном случае дает вам возможность, изменять место хранения ваших файлов, без особого вмешательства в код. Предположим, ваш проект стал популярным, и возникла проблема с местом под файлы, вы можете просто изменить используемую файловую систему с локальной на файловый хостинг Amazon S3 и масштабировать ваши медиа данные дальше без особых проблем. А для ускорения работы медленных файловых систем (Amazon S3, FTP), предусмотрен механизм локального кеширования.
Данная библиотека обеспечивает уровень абстракции файловой системы для SonataMediaBundle.
Довелось использовать только с локальной файловой системой, интересно услышать комментарии тех, кто использовал с FTP или Amazon S3.
Проект на github.com
HTTP клиент
Buzz
HTTP клиент на PHP5.3. Позволяет посылать HTTP запросы (используя FileGetContents, Curl, MultiCurl), получать ответы, работать с Cookie, HTTP заголовками, отправлять формы, работать с историей запросов и другое.
Думаю найдется применение)
Проект на github.com
SensioBuzzBundle
Бандл интегрирует библиотеку Buzz в ваш проект на Symfony 2 в виде сервис контейнера (DI).
Проект на github.com
Фууух!
Пока все…
А да, для поиска бандлов удобно использовать knpbundles.com