Monday 07 March 2016 5:38:37 pm
Symfony is a general collection of PHP components and an all purpose open source web application framework. During 2015 Symfony was downloaded over a million times per month and with a community of over 300,000 developers, Symfony is very much a global phenomenon.
All Symfony applications share the same development practices, development tools and extension methods. This makes working with any Symfony application immediately familiar to developers. Of course, each application has it's own domain and a specific problem or problems that it is solving. Some Symfony applications solve e-commerce or sales challenges. For eZ Platform the domain is, obviously, content management.
Here are five major CMS features in eZ Platform that Symfony developers can take advantage of for their next content-heavy site or app:
The content repository is the defining feature of eZ Platform. It is built on over 15 years of experience with real world use cases ranging from news and media sites and intranets to mobile apps and service integrations like this connected cruise experience.
eZ’s content repository supports multilingual content, and a semantic content model that enables efficient reuse of content. With an integrated Solr search engine integration, the repository scales to millions of content items with high scalability and high performance.
As the name implies, eZ Platform is designed to be extended by developers with new features and functionality. This is why the content editing interface is open and allows developers to create custom features.
In the recent years RESTful APIs have been a hot topic in the world of Web Content Management circles. In essence, this means that systems provide open interfaces for other applications to interact with them. In the case of CMSes - it is all about integrating content.
eZ Platform’s editorial interface uses REST APIs extensively. This guarantees that REST APIs are considered as first-class citizens and are equals to the internal APIs available to developers working with Symfony.
Siteaccesses are an eZ concept that match a certain URL to a specific combination of configurations. This enables deploying multiple web services with a single eZ Platform installation.
The obvious example is a site with multiple language versions. Individual language versions can be configured flexibly under different domain names or paths, for example:
The siteaccess mechanism integrates with the Symfony internationalization functionalities, enabling reuse of the same practices for translating user interfaces or working with multiple currencies.
eZ Platform comes with a granular permissions system that allows management of user permissions through the use of user groups and assigned rules.
The session management is shared with Symfony, which itself has a wealth of options for integration with different authentication systems. Tapping into the powerful components from the wider Symfony community, eZ Platform can leverage extensions to store users in MongoDB, for example.
As proof of the extensibility of eZ Platform, look no further than eZ Studio. It is an additional subscription service for content creation and landing page management. eZ Studio itself is built with the same APIs that are available to developers via eZ Platform.
Symfony is a great framework with superb documentation, but blended together with what eZ Platform offers it can be quite overwhelming for beginners. For Symfony novices, learning the ropes with a simple Symfony application is the best way to learn.
Once you are comfortable with the basics, it's easier to understand where Symfony ends and eZ Platform begins. So if you've got a number of projects underneath your belt with Symfony framework, then you can jump right in to eZ Platform and get started by reading the source. You’ll feel right at home!
Whether you're building a multilingual content portal, a custom service channel for a mobile operator or simply want a self-hosted Content as a Service (CaaS) eZ Platform might be a valid option for you, especially if you’re already familiar with Symfony.