How and why to migrate eZ Publish 4 to eZ publish 5 : Limitations, benefits and complexity.
How eZ publish 5 may revolutionize the way you build websites with the new symfony2 stack
Demystifying eZ Publish 5.x for eZ Publish 4.0 developers
1. 1401 Avenue du Mondial 98
Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
1 KALIOP.COM
Demystifying eZPublish 5.x
for eZPublish 4.x developers
2. Le
Major changes in a nutshell for developers
2
Replace your template fetch with PHP (HMVC)
Replace your viewcache / cacheblocks with
HTTP Cache / ESI (Varnish)
Replace your old eztemplate code with
TWIG / Assetics
New public API & Symfony full-stack for dev
(dependency injection, bundles...)
Replace your read-only REST API with
A eZ custom RESTful API V2
Replace your old INI files with YAML
New ezdemobundle to bootstrap a project or learn
3. Le
Major changes in a nutshell for editors ?
3
Same back office with new... (old) design
run with full ezpublish_legacy stack
7. Le
Full legacy mode (eZP 4.8+... BO)
7
https://confluence.ez.no/pages/viewpage.action?pageId=11403666#eZPublish5Architecture-Introduction&Overview-Whatarethechanges?
8. Le
eZPublish 5 through legacy (default)
8
https://confluence.ez.no/pages/viewpage.action?pageId=11403666#eZPublish5Architecture-Introduction&Overview-Whatarethechanges?
9. Le
eZPublish 5 full symfony (exp.)
9
https://confluence.ez.no/pages/viewpage.action?pageId=11403666#eZPublish5Architecture-Introduction&Overview-Whatarethechanges?
11. Le
Folders
11
Behat / phpUnit testing
Cache / global configs / logs
Your bundle (controllers / templates /
configs, tests, services...)
Exposed to vhost (index.php,
symlinks to assets)
3rd part libs & eZ5 new kernel
Stand-alone eZ legacy
22. Feature comparison : grey list
Full list : https://confluence.ez.no/display/EZP/4.x+feature+comparison
Now available : https://github.com/netgen/TagsBundle
23. Feature comparison with details
https://docs.google.com/spreadsheet/ccc?key=0AgGKn8SQ_akMdFQ3V
U0wMlR3cENxTDZ2dkhUcVN2SWc#gid=0
25. eZ Publish 5 cache in a nutshell
Twig compiled templates
Routing
service container
translations...
Persistence cache
User
GET /
200 OK
Age : 100
Cache-control:
Maxage=300
X-Location-Id:2
X-Location-Id:{nodeID}
Vary: X-User-Hash
expired
eZ
PROD
DEV
HTTP Cache
Clear on
Viewcache
event
27. 1401 Avenue du Mondial 98
Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
2 KALIOP.COM
Demystifying eZPublish 5.x
How to learn ?
28. How to learn ?
Developer documentation :
https://confluence.ez.no/display/EZP/eZ+Publish+Documentation
Read the ezdemobundle code (learn with live code exemples !)
Vendor/ezsystems/demoBundle/
Learn Symfony basics first !
30. Upgrading effort ?
You can migrate your features & existing layers step-by-step (and
keep a fallback for other features)
If we consider a full migration, you will need to :
- Replace all the templating with Twig+PHP controller
- Rebuild all the custom PHP dev (modules, scripts, datatypes,
template operators, etc.) with new symfony+public API logical
- Redesign your cache logical with HTTP cache
- Add Varnish on top of your platform
If we consider a full migration, you don't have to :
Think about the content & the back office
31. Upgrading oppotunity ?
Good if you need to redbuild the front-end for any
reasons : (responsive, new design, need ESI massively, etc),
opportuniy to rebuild with controllers+Twig
Good if you need a RESTful API for external App (mobile,
middleware)
Good if you have many new custom development to do.
Symfony will fit with the best practices (testing, injection
dependency)
34. 1401 Avenue du Mondial 98
Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
PROCHAINWEBINAR :
Kaliop.fr
• Bien intégrer sa boutique e-Commerce à son système d'information
•Le 17 juin à 16h00. S'inscrire
2
35. 1401 Avenue du Mondial 98
Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
GROUPE KALIOP
Kaliop.fr4