Как использовать произвольное хранилище пользователей в FOSUserBundle

Практически все используют FOSUserBundle в своих Symfony проектах т.к. он ускоряет разработку и обладает хорошим набором функциональности для управления пользователями. Бандл предоставляет несколько готовых реализаций хранилищ данных: Propel и несколько для Doctrine (ORM и ODM). Это здорово, но иногда возникает необходимость работы с другими хранилищами данных. FOSUserBundle достаточно гибок и позволяет реализовать, и использовать произвольное хранилище. Для того, чтобы использовать все возможности FOSUserBundle Вам достаточно будет написать свой менеджер пользователей под конкретного провайдера.

Интеграция Paysera в Symfony

Сегодня сложно представить себе серьезный проект, где не понадобилась бы интеграция с платежными системами. Не смотря на то что существует множество популярных систем и аггрегаторов, таких как PayPal, RBKMoney, Paymentwall, Robokassa и т.д., я хочу рассказать о Paysera. Это еще одна, довольно новая платежная система. Они позиционируют себя как выгодных с точки зрения комиссий за их услуги. Paysera позволяет вашим пользователям расплачиваться карточками, SMS и т.д. Интеграция довольно простая, однако имеет некоторые неочевидные моменты, которые я и хочу осветить.

Timeago в Symfony2

В проекте необходимо реализовать дату в виде “год назад”, “10 минут назад” и тп. Для этого есть много решений, но мы воспользуемся TwigExtensions.

Менеджеры Js/Css библиотек при работе над Symfony проектом

В процессе разработки, нам необходимо использовать стороние библиотеки, и соответсвенно необходимо централизованно их устанавливать. Прошли те времена когда для того чтобы поставить библиотеку, надо было скачать скрипты и распаковать их себе в проект. Сейчас для этого используют менеджеры библиотек, их очень много например: Сomposer, Bower, Npm, Component и другие. В проектах на Symfony2 используется Composer, но им не очень удобно устанавливать js/css библиотеки, поскольку все библиотеки ставятся в папку которая не должна быть доступна из браузера. Мы рассмотрим какими способами в Symfony2 проекте можно ставить js/css библиотеки, некоторые способы подойдут любому проекту в котором используется Composer.

Выбор движка для интернет магазина основанного на Symfony2

E-comerce достаточно быстро развивается, существует очень много движков для создания интернет магазина. Есть те, которые Вы можете развернуть у себя на хостинге. Есть сервисы для создания интернет магазина, которые берут определенную плату. В данной статье я рассмотрю движки для интернет магазина основанные на Symfony2, это будут Sylius, Thelia и Sonata, все три open source и соответственно бесплатны. Изначально я думал, что остановлюсь Sylius, и скажу вот он идеал, но в итоге рассмотрел все три, поскольку Sylius не всегда лучший вариант. Обзор предварительный и основан на своем субъективном мнении, так же не буду рассматривать проблемы при установке и их решение.

Создание сайта “Обратный отсчет” на Symfony2

Мы иногда видим сайты с обратным отсчетом, проект стартует через … Его сделать достаточно просто, и не займет много времени. Мы воспользуемся проектом fdevs/coming-soon, который основан на Symfony2. Также будем сохранять введеный пользователями адреса электронной почтой в базу данных MongoDB. У нас есть настроенное рабочее окружение Osx, о настройке можно прочитать в статье Yosemite настройка рабочего окружения. Но главное версия php не меньше 5.4. В проекте можно также использовать реляционную базу данных типа MySQL. По умолчанию в проекте вообще не используется база данных, а введеный email отправляется на почту.

Корпоративный сайт на Symfony2

Необходимо создать простой одностраничный корпоративный сайт, например 4devs.org. Для этого будет использоваться проект "fdevs/company-site" основаный на Symfony2. В проекте уже установлены базовые библиотеки, необходимые для корпоративного сайта.

Локализация даты в Symfony2

Необходимо локализировать дату, к примеру "2 ноября 2014", в проекте. Стандартный фильтр Twig date не дает такой возможности.   Есть TwigExtension позволяющий локализировать дату в зависимости от вашей локали. Добавим и установим пакет с помощью composer.json(в стандартном пакете Symfony2 он уже установлен), "twig/extensions": "~1.1" а в Symfony 2 подключим расширение, в файл config.yml добавим сервис: services: twig.extension.intl: class: Twig_Extensions_Extension_Intl tags: - { name: twig.extension } В наших шаблонах можем использовать localizeddate. Например: {{ post.published_at|localizeddate('medium', 'none', locale) }} Данный вариант очень прост в подключении и использовании.

Использование CRUD-генератора в Symfony2

Symfony вместе с DoctrineORM позволяет использовать CRUD генератор в своих приложениях. Рассмотрим использование CRUD(Create\Read\Update\Delete) на практике. У нас уже установлена Symfony 2.5, при этом используется структура директорий версии 3.0, также создана база в Mysql. Создадим небольшое веб приложение для добавления книг и других данных в таблицу. Итогом у нас будет возможность добавления/удаления/редактирования книги, автора, издательства в базу данных.