A presentation of eZ Publish from an evolution perspective: what our product went through, and how our long experience of content management has allowed us to be very ambitious in our rewrite of it.
3. Agenda
First things first
Introducing eZ Systems
The past: eZ Publish 3 & 4
The present: eZ Publish 5
The future: building on the foundations
Bertrand Dunogier 27/02/2013 3
5. eZ Systems AS founded in 1999
in Norway
More than 13 years
commitment to Commercial
Open Source
105 employees
Continued growth: Supporting
over 15,000 customers in 120
countries
Established ecosystem: More
than 350 Partners and a strong
community of 42,000 +
members
Over 5 million downloads and
250,000 installations
Bertrand Dunogier 27/02/2013 5
6. The past : eZ Publish 3 & 4
Distribution model
Community project
•
GPL v2 license
•
Can be downloaded from http://share.ez.no/
•
or checked out from http://github.com/ezsystems
•
Free of any charge
•
Built every month
•
Bleeding edge, only continuous QA, no freeze
•
Drives innovation
•
Public repository used by both community and eZ
Bertrand Dunogier 27/02/2013 6
7. The past : eZ Publish 3 & 4
Distribution model
Enterprise edition
•
Proprietary license (BUL, TTL)
•
Certified and supported by eZ Systems
•
Released twice a year (may and november)
•
Each release goes through 3 month of QA
•
Versions are maintained for 3 years
•
Gives access to extra features (recommendation,
marketing automation...) as well as the market place
Bertrand Dunogier 27/02/2013 7
8. Agenda
CXM : content management on steroids
A digital presence means much
more than a CMS
Where did they come from ?
What did they do ?
What can I sell them ?
Will they find it ?
Did they ?
Bertrand Dunogier 27/02/2013 8
10. The past : eZ Publish 3 & 4
A huge legacy
A powerful content model
●
Up to 64 / 128 languages
●
100% flexible, semantic content model
●
text line, image, email, author, rich text, content relation,
custom one !...
●
Vertical, horizontal and transversal structure
●
Multilingual content based URLs
➔
/Conferences/Confoo-2013/Discover-eZ-Publish
➔
/Conferences/Confoo-2013/Decouvrez-eZ-Publish
●
Advanced permissions system
Bertrand Dunogier 27/02/2013 10
11. The past : eZ Publish 3 & 4
A huge legacy
A rich presentation system:
●
Custom, compiled templates
●
Full separation of presentation
and content
●
Powerful override mechanism
●
A design system that reduces
duplicates
●
Automatic image alias
generation
●
Everything can be overriden,
backoffice included
Bertrand Dunogier 27/02/2013 11
12. The past : eZ Publish 3 & 4
A huge legacy
An extensible system
●
Custom datatypes
●
Template operators and functions
●
Data fetch functions
●
Modules & views (MVC like)
●
Permissions
●
URL alias translators
●
Login & SSO handlers
●
Workflow events
●
Shell scripts
●
Crontab jobs
Bertrand Dunogier 27/02/2013 12
13. The past : eZ Publish 3 & 4
An era of maintenance
•
13 years of maintenance
•
Complete BC and migration path from 3.0 to 4.7
•
Solid, stable base architecture
–PHP 4 object oriented model
–MVC layer
–ORM model (eZPersistentObject)
–Proven custom template engine
•
Parallel maintenance of many stable versions
Bertrand Dunogier 27/02/2013 13
15. The present : eZ Publish 5
The Genesis
A well defined goal
–Properly defined, self documented public API
–Future proof architecture
–Flexible enough to allow any kind of storage
–Tested
–Extensible
–Backward compatible architecture
•Existing content must be compatible as is
•Extra BC layers to ease projects migration
Bertrand Dunogier 27/02/2013 15
16. The present : eZ Publish 5
The Genesis
A brand new architecture
•
Specified, documented public API
•
Stateless objects architecture
–Read only value objects
–Update and create structs
•
Service oriented
–Allows re-implementations of services
–Makes dependencies MUCH easier
•
Totally independent storage engines
Bertrand Dunogier 27/02/2013 16
17. The present : eZ Publish 5
The Genesis
Backwards Compatibility
*Knockknock*
Devs: «Who's there?»
«Product Management»
Devs: «Product Management who?»
«Product management who wants backwards compatibility»
Devs: «Oh crap...»
Bertrand Dunogier 27/02/2013 17
18. The present : eZ Publish 5
The Genesis
•
Full legacy database compatibility:
–No structure changes at all
–100% data compatibility
•
Full execution of the legacy version
•
Execute legacy code
•
Routing fallback
•
Use eZ Publish 5 services from legacy code
•
Include legacy templates as is
•
Two-ways settings compatibility CHALLENGE
ACCEPTED
Bertrand Dunogier 27/02/2013 18
19. The present : eZ Publish 5
The Genesis
A full featured RESTfull API
•
Basic / Session based authentication
–oAuth2 in a future version
•
Idempotent
•
CSRF protection
•
XML / JSON as input and/or output
•
Almost 100% HATEOAS compatible
•
HTTP Cachable
Bertrand Dunogier 27/02/2013 19
20. The present : eZ Publish 5
The Genesis
All of this is powered by Symfony 2 !
•
Framework
–Settings
–Services container
•
Routing system
•
HMVC architecture
•
HTTP kernel
•
Twig template engine
Bertrand Dunogier 27/02/2013 20
22. The future : let's build !
More storage
Finishing up the REST API
•
Adding oAuth2 authentication
•
Built-in PHP REST client
–Reimplementation of the API services
–The same code can be executed locally or
remotely !
•
Built-in JS REST client
–Required for our GUIs
–Must-have for our partners
Bertrand Dunogier 27/02/2013 22
23. The future : let's build !
More storage
Replacing legacy code
•
eZ Publish 4 really had a lot of features
•
Most of those need to be rewritten/replaced
•
Some are replaced by Symfony features
•
Others will need to be developed from scratch
Bertrand Dunogier 27/02/2013 23
24. The future : let's build !
New interfaces : backoffice
New backoffice
•
An administration backoffice rewritten from scratch
–Mix of standard PHP / Ajax
–Modern
–Based on new eZ Publish 5 controllers
•
Designed for two personas
–Casual User
–Power User
Bertrand Dunogier 27/02/2013 24
25. Your next steps in the eZ Community
Twitter @ezcommunity
Learn http://share.ez.no/learn
Google+ http://bit.ly/ezcty-gplus
Get Involved http://share.ez.no/get-involved
Keep Track
http://share.ez.no/get-involved/exchange#RSS
Forge Ahead http://projects.ez.no
Download eZ Publish Community Project
http://share.ez.no/download
Suggest Feature Ideas http://share.ez.no/roadmap
Be an eZ Publish Developer
http://share.ez.no/get-involved/develop#resources
Bertrand Dunogier 27/02/2013 25
26. The end
Questions ?
Bertrand Dunogier 27/02/2013 26