Менеджеры 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 отправляется на почту.

Автоматический deploy Symfony 2 используя Capifony

При разработке, и тем более поддержке действующего проекта на Symfony 2 одной из задач, которые приходится постоянно делать, это выгрузка изменений на сервер: рабочей или тестовой. Но так как программисты народ достаточно ленивый, чтобы автоматизировать повторяющиеся монотонные задачи, есть достаточное количество инструментов для облегчения данного процесса. Для Symfony2 мы используем Сapifony. Он основан на Capistrano но оптимизирован для Symfony.

Yosemite настройка рабочего окружения.

После обновления OSx Yosemite, необходимо настроить рабочую систему. Мы установим и настроим пакеты php-fpm, nginx, mongo, nodejs. Для начала установим Xcode из App Store обновим консольные команды $ xcode-select --install и уберем apache из автозагрузки $ sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist . Так как у Apple не появилось своего менеджера пакетов будем использовать проверенный brew.

Корпоративный сайт на 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. Создадим небольшое веб приложение для добавления книг и других данных в таблицу. Итогом у нас будет возможность добавления/удаления/редактирования книги, автора, издательства в базу данных.

MAMP для OSx

Рассмотрим подробности установки инструментов разработчика на OSx. Итогом будет рабочий проект. То есть должны работать все зависимости для Symfony. Мы также установим и настроим MongoBD. MAMP расшифровывается как Mac Apache MySQL PHP. В нашем случае это Mac Apache Mongo PHP.