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
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
Le
Major changes in a nutshell for editors ?
3
Same back office with new... (old) design
run with full ezpublish_legacy stack
Le
ezdemobundle ?
4
1401 Avenue du Mondial 98
 Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
5 KALIOP.COM
Demystifying eZPublish 5.x
Platform Architecture
Le
Platform Architecture
6
https://confluence.ez.no/pages/viewpage.action?pageId=11403666#eZPublish5Architecture-Introduction&Overview-Whatarethechanges?
Le
Full legacy mode (eZP 4.8+... BO)
7
https://confluence.ez.no/pages/viewpage.action?pageId=11403666#eZPublish5Architecture-Introduction&Overview-Whatarethechanges?
Le
eZPublish 5 through legacy (default)
8
https://confluence.ez.no/pages/viewpage.action?pageId=11403666#eZPublish5Architecture-Introduction&Overview-Whatarethechanges?
Le
eZPublish 5 full symfony (exp.)
9
https://confluence.ez.no/pages/viewpage.action?pageId=11403666#eZPublish5Architecture-Introduction&Overview-Whatarethechanges?
1401 Avenue du Mondial 98
 Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
1 KALIOP.COM
Demystifying eZPublish 5.x
Code basics
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
Le
Folders
12
Your controllers
(contain queries)
Your templates
Your global
settings
settings / templates
overrides
Le
SiteAccess / mode setup
13
Import settings
Same eZ4 HostMap logical
+ additionnal rules
Root node / index_page
Set legacy mode for admin
https://confluence.ez.no/display/EZP/How+to+paginate+API+search+results
Simple (fetch) exemple
Query your content
whith parameters
Inject the result within
the pager class
Render with twig
https://confluence.ez.no/display/EZP/How+to+paginate+API+search+results
Twig exemples
Simple template exemple
Fallback exemple with eZFind
https://confluence.ez.no/display/EZP/Legacy+code+and+features
https://confluence.ez.no/display/EZP/View+provider+configuration
Template override
https://confluence.ez.no/display/EZP/View+provider+configuration
Template override
1401 Avenue du Mondial 98
 Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
1 KALIOP.COM
Demystifying eZPublish 5.x
Feature comparison
Feature comparison : white list
Full list : https://confluence.ez.no/display/EZP/4.x+feature+comparison
Feature comparison : white list
Full list : https://confluence.ez.no/display/EZP/4.x+feature+comparison
Feature comparison : grey list
Full list : https://confluence.ez.no/display/EZP/4.x+feature+comparison
Now available : https://github.com/netgen/TagsBundle
Feature comparison with details
https://docs.google.com/spreadsheet/ccc?key=0AgGKn8SQ_akMdFQ3V
U0wMlR3cENxTDZ2dkhUcVN2SWc#gid=0
1401 Avenue du Mondial 98
 Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
2 KALIOP.COM
Demystifying eZPublish 5.x
HTTP Cache
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
Understand eZ Publish 5 cache in details
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 ?
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 !
1401 Avenue du Mondial 98
 Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
2 KALIOP.COM
Demystifying eZPublish 5.x
Upgrading opportunity ?
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
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)
1401 Avenue du Mondial 98
 Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
3 KALIOP.COM
Demystifying eZPublish 5.x
Question ?
Des questions ?
1
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
1401 Avenue du Mondial 98
Immeuble Oxygène
34000 Montpellier
04 99 13 68 60
GROUPE KALIOP
Kaliop.fr4
Kaliop.fr5
Legroupe
32
Kaliop.fr6
Legroupe
33

Demystifying eZ Publish 5.x for eZ Publish 4.0 developers