Корпоративный сайт на 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) }} Данный вариант очень прост в подключении и использовании.

Composer и пакеты nodejs как зависимости

Недавно у меня возникла необходимость прописать один из пакетов nodejs как зависимость для моего Symfony бандла. Как скормить composer'у такой пакет я не знал. Далее я хочу рассказать о том, какие варианты решения я рассматривал, на каком из них в итоге остановился и почему именно на нем. Также хочу сказать, что способы применимы не только при написании бандлов, но и любых библиотек.

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

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

Используем Gearman в работе

 - сервер задач/очередей, позволяющий выполнять множество полезных действий, таких как: - балансировка нагрузки - распараллеливание процессов - взаимодействие модулей, написанных на разных языках программирования - построение приложений с распределенной архитектурой - вынесение медленных и тяжелых задач в фоновый режим для ускорения реакции приложения на действия пользователя

Git, используем алиасы

Git является отличным DCVS, и работать с ним одно удовольствие, однако, как любителя работать с ним через терминал, меня порой утомлял постоянный ввод одних и тех же длинных команд. К счастью у git'а есть лекарство и для этого случая и оно называется Alias.

MAMP для OSx

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

SonataAdminBundle + AJAX загрузка файлов.

Всем приятного времени суток. В данной статье, я хочу рассмотреть 2 способа не совсем обычной загрузки файлов, которые мне по долгу службы пришлось реализовать на одном проекте. Задача стояла такая: необходимо реализовать Drag & Drop закачку файлов в админ части сайта, который был сделан на framefork’e Symfony 2.3 + SonataAdminBundle. По ряду причин я опускаю ту часть, в которой Соната ставилась (если появится необходимость то можно и восполнить этот пробел). Итак, я полагаю что у вас уже установлена Соната и создана хотябы одна сущность в папке Entity. Если же нет, давайте сделаем это.

Autoload в Composer

Раньше я уже писал об автозагрузке классов в PHP. Сегодня я хотел бы рассмотреть как реализован автозагрузчик классов в Composer и какие возможности он имеет.