It is not often enough in my view that Developers and Software Engineers take the time to review a framework or content management system in writing, so here is a quick review of our experiences using Sylius.
What is Sylius
Officially Sylius is described as “Modern e-commerce for PHP”. This for me is the best description of it, when it is in a Release Candidate version. Currently it is only in Alpha stage and is missing a lot of the functionality when compared to a CMS/framework like Mageno.
Sylius is based upon the Symfony 2 framework, and so us developers should love it. At the time of writing this, Sylius is at version 0.10.0.
The bad parts
The only real draw backs to this framework are that it is incomplete. There is lots of missing documentation and there is no clear way or example on integrating many of the payment providers (although the main ones are supported out the box). Another main feature I feel is missing is the creation and management of pages of content.
I can also see problems with the framework going forward which I have not seen solutions for yet (maybe because they are not problems). One such problem I thought about lately is the problem of overriding Sylius classes via the dependancy injection container. If we are to ever use a modules approach with Sylius, then there will need to be some kind of way for module overrides (other 3rd party modules) and local overrides to work together. I know this can be solved via using events, then there is the configuration of the order those event listeners are called. There is also no such “theme” support either which is a bit of a blow. Many FE developers don’t want to be trawling through the many Symfony 2 bundles. Also did I mention it is incomplete 🙂
The good parts
Sylius has a very nice admin area, similar in feel to WordPress. It is easy to use and already has the bulk of functionality you would expect from an e-commerce platform (products, categories, attributes, orders, customers etc). It is also very easy to add your own items to the admin area for bespoke pieces of functionality.
The front end is not the prettiest at present, but it does have all the basics (shopping cart, currency switcher, totals, basket, product pages etc etc). It is easy updated to look how you want it to using the joys of Symfony 2.
I purposely places the good parts last as I genuinely like Sylius, and so wanted to finish in the best possible light. Most developers who have worked on Symfony 2 project know the joy of the freedom it brings. Controllers that do not have to extend any god controller, the DIC, Twig etc. It is simply a joy to work with. We have built many e-commerce websites ourselves using mainly Magento which, as many of us know, is not nice to work with from a back end perspective. You usually end up an expert in XML not PHP. Try holding it together when you tell someone you are a Software Engineer after working on Magento for a while. It’s simply not nice. Sylius on the other hand is a joy. It has been built on top of a great framework to produce a great e-commerce platform.
I would say overall, Sylius is definitely my choice for an e-commerce solution. It obviously depends on the scale of the site you are building and the functionality you require, but if you are building a smallish store and you require lots of customisation, I would consider using Sylius. We have just completed a store using Sylius and we have enjoyed every minute of it.
Remember to keep in mind however, Sylius is only in Alpha stage at the moment and so you should consider that there could be potential security issues and bugs (like this one I fixed), so it is worth thoroughly testing all your desired functionality by carrying on the frameworks standard testing methodology (BDD) using Behat.