FULL STACK SYMFONY CMS18 MAR 2016
EZ PLATFORM
DISCLAIMERDon’t believe a software vendor!
SOME HISTORY & CONTEXTAbout eZ
www.ez.no
IN NUMBERS
Skien
15 year old software company, dedicated to provide tools and solutions where Content means Business. We are recognized as a leader in
the domain of Content Management that constantly stays on the edge of innovation.
New York LisbonParis
Oslo
Tokyo
Lyon
Cologne
Katowice
45.000+ Members
80 Employees
250.000+Installations
200+ Partners
5M+ Downloads
Users in 160 Countries
Commercial Open Source
www.ez.nowww.ez.no
eZ Publish, 1999-2015
๏ Open Source ๏ First version in 2000๏ Rewrite for eZ Publish 3 being more a CMF on PHP4 ๏ Development of eZ Components๏ First PHP5 version developed by the eZ Community๏ Addition of CXM components from 2011
www.ez.no
OUR SOFTWARE SOLUTIONS in 2016
By providing tools, solutions & services through a digital business platform, the eZ Publish Platform, covering a range of business needs:
www.ez.no
eZ ENTERPRISE
The next generation of eZ
eZ Platform
eZ Studio
Cloud ServicesPersonalization | Smart Analytics | Marketing
Automation
eZ Studio
For contentcreators
For developers& designers
CONTENT PLATFORMBuild unique digital experiences that work
CONTENT STUDIOCreate and manage your contentwith ease
CONTENT INTELLIGENCEMaximize the relevance of your content and grow your business
KEY HISTORICAL CHARACTERISTICSeZ Platform
www.ez.nowww.ez.no
When is eZ Platform used?
๏More complex sites in terms of content architecture
๏Multilingual enterprise sites๏ “Integration heavy” web projects๏Content Reuse / CaaS๏Custom E-commerce
BUILT ON SYMFONYThe Symfony Full Stack Framework
www.ez.nowww.ez.no
The Symfony Framework
๏Symfony is a popular general purpose web framework with a million downloads a month
๏Developers familiar with the Symfony framework can start working with eZ Platform quickly
๏The skillset is transferrable to other platforms built with it (OroCRM, Sylius, Akeneo…)
www.ez.nowww.ez.no
The Symfony Framework
๏A modern PHP framework that handles basics such as routing, caching, i18n, forms and more…
๏Focuses on the HTTP request-response model๏Actions like caching and other things very
fluent, since you’ll be working with responses๏A solid architecture that allows extending
functionality with a Bundle mechanism
WHAT DOES eZ PLATFORM DO?Adds Content Management Features to Symfony
www.ez.nowww.ez.no
eZ Platform
๏Content Management is a complex problem domain
๏eZ Systems has over 15 years of experience in it๏Solid concepts for multisite and multilingual
publishing with a semantic content model๏Exposes PHP APIs and REST APIs to developers
www.ez.nowww.ez.no
Content Repository
A Content Repository๏A flexible storage for content๏Fully integrated Solr search for high
performance with millions of content items๏Sends API signals (on all operations like
delete, move, remove subtree, indexing…) for Micro Workflows
๏Pluggable storage backends (currently SQL)
www.ez.nowww.ez.no
REST API
A comprehensive REST API๏A public interface to interact with the
repository๏The admin interface uses it - a first class
citizen! ๏For content syndication or straight with front
end technologies like Angular, React or Vue…๏Extensible, you can aggregate data from any
Symfony data models like Doctrine ORM
www.ez.nowww.ez.no
Dynamic routing
Dynamic Routing๏Uses the ChainRouter from Symfony CMF๏Matches dynamic URLs from the repository:
๏http://example.com/products/bicycles/kids๏Works with the static routes you’ve made:
๏http://example.com/polls/123
www.ez.nowww.ez.no
Siteaccess concept
Siteaccess concept๏Matching a URL to a set of configurations๏Typical use cases are multisites and language
versions๏http://example.de/๏http://example.com/de/๏http://de.example.com/
www.ez.nowww.ez.no
User Interface
User Interface๏A UI for managing the content, previewing,
etc.๏Uses the REST API for a no-pageloads
experience๏Designed to be extensible, developers can
add menu items๏Enables centralizing of all data editing in your
Symfony applications to one interfaces๏you can keep using Sonata or others, too
www.ez.nowww.ez.no
User and Permissions management
User and Permissions management๏A powerful user and permissions
management system using users, user groups and roles
๏Uses the Symfony session transparently๏You can store users elsewhere (Active
Directory, LDAP, FOSUserBundle, etc.) and mock an eZ user when accessing the content repository
BUILT FOR A DISTRIBUTED WORLDScaling horizontally with abstractions
www.ez.no
THE TARGETED ARCHITECTURE
Storage
eZ Platform Business Logic
Persistence & IO SPI
Public API
Symfony2 Web Framework
REST API
Twig Template Engine
Website / Demo siteCMS User
Interface
End Users(Website users)
Editor, Marketer, Admin(CMS users)
Web ServiceUser Interface
APIs
Web Framework & dev
Kernel(s)
Content & Data
www.ez.nowww.ez.no
Application Servers
๏PHP scales well by nature - just add more boxes๏PHP 7 supported, big performance wins: https://
www.symfony.fi/entry/symfony-benchmarks-php-56-hhvm-and-php-7
๏Docker to be the deployment choice going forward
๏https://github.com/ezsystems/docker-php
www.ez.nowww.ez.no
Database
๏Uses the Doctrine DBAL for SQL abstraction๏MySQL and MariaDB are now officially supported๏PostgreSQL, Oracle, MSSQL… technically feasible๏http://
www.doctrine-project.org/projects/dbal.html
www.ez.nowww.ez.no
File storage
๏eZ Platform uses the FlySystem abstraction layer for file storage
๏A number of options out of the box: S3, Dropbox, Azure Blob Storage…
๏Switching is a matter of configuration๏http://flysystem.thephpleague.com
www.ez.nowww.ez.no
Search
๏Solr, a separate search server built with Java๏Communications over a RESTful API๏Even higher performance and scaling with
clustering๏https://
github.com/MSOpenTech/Windows-Azure-Solr
www.ez.nowww.ez.no
Caching
๏eZ Platform uses the Stash abstraction layerfor caching
๏By default file caches, but can be switched to Memcached, Redis…
๏Scale cache yourself or using Azure Redis, for example
๏http://www.stashphp.com
www.ez.nowww.ez.no
HTTP layer
๏eZ Platform uses the FOSHttpCache for HTTP cache controlling
๏Supports user contexts, purging using tags…๏Edge Side Includes (ESI) using HMVC from
Symfony๏Example Varnish configurations out of the box๏https://
github.com/FriendsOfSymfony/FOSHttpCacheBundle
COOL LINKS OF THE DAY
www.ez.nowww.ez.no
Cool Links
๏http://ezplatform.com๏http://ezstudio.com๏https://
www.symfony.fi/entry/symfony-benchmarks-php-56-hhvm-and-php-7
๏http://ez.no/Blog/How-Symfony-developers-can-take-advantage-of-eZ-Platform-a-fully-featured-Symfony-CMS
๏http://ez.no/Blog/How-eZ-improves-its-software-development-process-with-Docker
Thank you!Jani Tarvainen, Professional Services [email protected]@velmu