В статье Менеджеры Js/Css библиотек мы рассматривали какие есть варианты использования менеджеров зависимости. В данной статье мы рассмотрим как использовать Component для Symfony2.
В процессе разработки, нам необходимо использовать стороние библиотеки, и соответсвенно необходимо централизованно их устанавливать. Прошли те времена когда для того чтобы поставить библиотеку, надо было скачать скрипты и распаковать их себе в проект. Сейчас для этого используют менеджеры библиотек, их очень много например: Сomposer, Bower, Npm, Component и другие.
В проектах на Symfony2 используется Composer, но им не очень удобно устанавливать js/css библиотеки, поскольку все библиотеки ставятся в папку которая не должна быть доступна из браузера. Мы рассмотрим какими способами в Symfony2 проекте можно ставить js/css библиотеки, некоторые способы подойдут любому проекту в котором используется Composer.
E-comerce достаточно быстро развивается, существует очень много движков для создания интернет магазина. Есть те, которые Вы можете развернуть у себя на хостинге. Есть сервисы для создания интернет магазина, которые берут определенную плату. В данной статье я рассмотрю движки для интернет магазина основанные на Symfony2, это будут Sylius, Thelia и Sonata, все три open source и соответственно бесплатны. Изначально я думал, что остановлюсь Sylius, и скажу вот он идеал, но в итоге рассмотрел все три, поскольку Sylius не всегда лучший вариант. Обзор предварительный и основан на своем субъективном мнении, так же не буду рассматривать проблемы при установке и их решение.
Мы иногда видим сайты с обратным отсчетом, проект стартует через … Его сделать достаточно просто, и не займет много времени. Мы воспользуемся проектом fdevs/coming-soon, который основан на Symfony2. Также будем сохранять введеный пользователями адреса электронной почтой в базу данных MongoDB. У нас есть настроенное рабочее окружение Osx, о настройке можно прочитать в статье Yosemite настройка рабочего окружения. Но главное версия php не меньше 5.4. В проекте можно также использовать реляционную базу данных типа MySQL. По умолчанию в проекте вообще не используется база данных, а введеный email отправляется на почту.
Необходимо создать простой одностраничный корпоративный сайт, например 4devs.org. Для этого будет использоваться проект "fdevs/company-site" основаный на 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) }}
Данный вариант очень прост в подключении и использовании.
Symfony вместе с DoctrineORM позволяет использовать CRUD генератор в своих приложениях.
Рассмотрим использование CRUD(Create\Read\Update\Delete) на практике. У нас уже установлена Symfony 2.5, при этом используется структура директорий версии 3.0, также создана база в Mysql.
Создадим небольшое веб приложение для добавления книг и других данных в таблицу. Итогом у нас будет возможность добавления/удаления/редактирования книги, автора, издательства в базу данных.