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

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

Sylius

Данное решение для создания интернет магазина существует достаточно давно, и имеет большое сообщество. Среди функционала, есть возможно делить магазин на каналы. К примеру есть возможно выделить канал на магазин для мобильной и обычной версии. Единственное - делить на каналы можно только по домену. В админ интерфейсе можно добавлять параметры к товарам, к примеру магазин может торговать одновременно и мобильными телефонами и холодильниками. Товары локализированы и можно описание и параметры задавать в установленных языках. В качестве основной базы данных используется MySQL. Но для страниц используется модуль от Symfony cmf который в свою очередь ориентирован в основном на PHPCR. Это добавляет необходимость или использовать провайдер или ставить дополнительную базу данных. Перейдем к основным плюсам и минусам.

Плюсы:

  • большое сообщество.
  • многое настраивается в админ панели.
  • документирован.

Минусы:

  • проблемы с установкой, даже demo не сразу заработает.
  • очень много сложных запросов к ДБ. Это обусловленно гибкостью в настройках продуктов.
  • сильная связанность компонентов/bundles. Если вы хотите использовать к примеру Products для каталога, то он подтянет очень многое чего вам не надо.
  • локализация не полная, к примеру страницы не переведены.
  • Каналы для магазина можно делать только по домену, к примеру если вы хотите сделать канал для русского языка то вам прийдется использовать поддомен.
  • для размеров движка документации невероятно мало.

Выводы

Он подходит для магазинов с большим набором товаров, и при необходимости постоянно дорабатывать новый функционал. Если вы хотите поставить и попробовать, лучше выбрать что-то попроще. Требовательный к серверу, на самом простом будет просто тормозить и без кэширования я бы не советовал его использовать на production. Если же вам нужно деление на каналы для продажи разных групп товаров или для разных категорий, то этот вариант для вас, дорабатывать/поддерживать или вводить новый функционал будет не сложно.

Thelia

Это движок для создания магазина основан на компонентах Symfony. Как шаблонизатора использует Smarty, хотя в версии 2.2 обещают что можно будет легко подключить Twig. Его легко поставить, он мультиязычный, но не заработает со старта, прийдется немного его править, чтобы все заработало. Есть документация, но описана не вся функциональность. Базу данных использует MySQL, для ORM propel.

Плюсы:

  • Легкий.
  • Есть модули, можно подключать модули через админ интерфейс.
  • можно настраивать через админ панель.
  • хорошая локализация для покупателя, можно перевести все что вам нужно.

Минусы:

  • Очень много модулей, но не всегда есть то что надо именно вам. К примеру есть модули оплаты Paypal но нет модуля оплаты Webmoney, в каждом случае прийдется смотреть что именно вам необходимо.
  • настройки хранятся в базе данных, и админ может просто ошибиться и поломать сайт.
  • нет профайлера. При разработке вам нужно дополнительными способами узнавать количество запросов, время и другие важные параметры.
  • своя структура, к примеру при обновлении composer update слетят все настройки для базы данных, поскольку пакет config тоже обновляется.
  • админ панель имеет ограниченное количество языков, не всегда есть то что нужно именно вам.
  • PSR2 - нет, не слышали, хотя в большинстве случаев похоже что используется. но есть моменты где грубо нарушают.
  • слабая обработка ошибок, не все можно найти в логах.

Выводы

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

Sonata

 У sonata есть много bundles и для магазина только один из них. Можно поставить демо в котором есть все что необходимо для магазина. Он расширяем и его вполне можно использовать отдельно. Для каждого типа продукта необходимо будет сделать модель, с одной стороны нужен программист, но с другой тут меньше вероятность ошибки, и получается более гибко можно каждый продукт настроить.

Плюсы:

  • независим и использует структуру Symfony. Это позволяет просто подключать другие библиотеки.
  • из всех трех очень легко установить демо проект, и все работает.

Минусы:

  • нет локализации, то есть товары только на одном языке.
  • нет стабильной версии.

Выводы

Если вам достаточно одного языка его можно использовать. Достаточно сложно использовать его PageBundle, но для начала можно и без него, а в процессе дорабатывать. Его также легко дорабатывать. Если вы еще не готовы к Sylius и вам не подходит Thelia то этот вариант для вас.

Заключение

На Symfony нет серебряной пули как и везде, есть выбор движка для магазинов, но какой подходит именно вам, надо смотреть по поставленным задачам.