SlideShare a Scribd company logo
Where Content Means Business
Symfony PHP NYC meetup
Why we ditched our legacy framework for Symfony
- a journey to Symfony2 (full stack)
Roland Benedetti - Product @ezsystems
An Open Source PHP CMS Pioneer
2
• Coming from Norway and Europe, but now designed in Brooklyn
• Creators of eZ Publish platform, an Open Source CMS pioneer, still alive and kicking!
• 40k+ members in the community
• More than 5M downloads (stopped counting…)
• 2.55M lines of code :-(
• Commercial Open Source (GPL) CMS offering for Enterprise
• but also fathers of eZ Components, who turned into Apache Zeta Components
Back in spring 2011
3
In 2011, eZ Publish 4.x codebase has 8 years, is rock solid, went through PHP4 and PHP5,
very well accepted but shows some limitations. Our challenge back then:
• To redevelop the core business logic - the content repository and its APIs to allow future
scalability and cloud infrastructure needs.
• To adopt a real layered architecture and rely on a framework technology used by many and
not just us - moving from in-house fwk to a one shared with a wider community.
Our options
4
• Our own eZ Components / Zeta components libraries
• Zend (slightly loosing traction, and quite heavy)
• Symfony 2 (gaining traction)
• Moving to another platform (Java / Spring)
And we went for…
5
What made us tick:
• Native HTTP approach for cache, promising nice perspectives on use of ESI (Edge Side
Include) and ability to implement very smart caching.
• The very vibrant and growing community (especially in Europe and France)
Our major concern:
• The performance of Symfony without Cache.
Retrospectively
6
A very good move, 1st for non-technical reasons:
• Shifting focus to our core activity: the content management, not the app. fwk
• Cross pollination between communities (the Symfony community but also other
communities using Symfony, like Sylius, Oro, Drupal…)
• Fostering contributions in our ecosystem
• Making it easier to customize
Retrospectively
7
Technically, also a very good move very well adopted in the community.
Top 5 of the perks asking developers:
#1 Composer
8
A top-notch dependency mgmt tool, PHP is much better than you think :-)
Reinvent the way we deploy PHP apps (and eZ Publish)
#2 Twig
9
Bye bye home-brewed TPL engine, we loved your fetch-functions but
now we can really clearly separate view from business logic!
#3 Semantic Configuration
10
Because it’s so much better in YML…
#4 Packaging your own App
11
One single app. to rule them all
Example:
Sylius (http://sylius.org/) + eZ
= full Content+Commerce solution (forget connectors)
#5 The cache approach, and fit with Varnish
12
We loved the initial cache approach, but we even more love how we
were able to extend it to be context aware and smart
https://doc.ez.no/display/EZP/Context+aware+HTTP+cache
https://github.com/FriendsOfSymfony/FOSHttpCacheBundle
Where Content Means Business
How we did it?
Symfony as components or as a fwk? We wanted a Fwk!
14
15
Symfony as components or as a fwk? We wanted a Fwk!
A progressive move with as little BC breaks
16
5.25.1 5.35.0 5.4
legacy
New	
  Stacklegacy
eZ Publish eZ Publish Platform eZ Platform
Targeted architecture
17
Storage
eZ	
  Pla,orm	
  Business	
  Logic
Persistence	
  &	
  IO	
  SPI
Public	
  API
Symfony2	
  Web	
  Framework
REST	
  API
Twig	
  Template	
  Engine
Website	
  /	
  Demo	
  site
CMS	
  	
  
User	
  	
  
Interface	
  
End	
  Users	
  
(Website	
  users)
Editor,	
  	
  
Marketer,	
  	
  
Admin	
  
(CMS	
  users)
Web	
  Service
User	
  Interface
APIs
Web	
  Framework	
  &	
  dev
Kernel(s)
Content	
  &	
  Data
Current architecture (5.x)
…
18Storage
legacy	
  kernel:

eZ	
  Publish	
  Legacy	
  
Business	
  Locic	
  (LS)	
   eZ	
  Pla,orm	
  kernel:	
  
eZ	
  Pla,orm	
  Business	
  Logic
Persistence	
  &	
  IO	
  SPI
Public	
  API
Symfony2	
  Full	
  Stack
REST	
  API
Twig	
  Template	
  Engine
eZ	
  &	
  custom	
  controllers
eZ	
  Template	
  Engine	
  (LS)
Legacy	
  modules
Website	
  /	
  Demo	
  siteCMS	
  UI	
  (LS)
End	
  Users	
  
(Website	
  users)
Editor,	
  Marketer,	
  	
  
Admin	
  
(CMS	
  users)
Web	
  Service	
  
IntegraRon
User	
  Interface
APIs
Web	
  Framework	
  &	
  dev
Kernel(s)
Content	
  &	
  Data
New	
  kernel	
  &	
  legacy	
  kernel	
  
Interoperability
New architecture (eZ Platform)
Storage
eZ	
  Pla,orm	
  Business	
  Logic
Persistence	
  &	
  IO	
  SPI
Public	
  API
Symfony2	
  Web	
  Framework
REST	
  API
Twig	
  Template	
  Engine
Website	
  /	
  Demo	
  site
eZ	
  Pla,orm	
  U.I.
End	
  Users	
  
(Website	
  users)
Editor,	
  	
  
Marketer,	
  	
  
Admin	
  
(CMS	
  users)
Web	
  Service
User	
  Interface
APIs
Web	
  Framework	
  &	
  dev
Kernel(s)
Content	
  &	
  Data
eZ	
  Studio
legacy	
  
kernel	
  
(opRonal	
  	
  
non	
  supported	
  bundle)
old	
  UI
New architecture (eZ Platform)
Rich	
  Internet	
  ApplicaRon	
  
• javaScript	
  Based	
  
• relying	
  	
  heavily	
  on	
  eZ	
  REST	
  API	
  
• YUI	
  as	
  a	
  basis	
  for	
  the	
  JS	
  framework
Storage	
  System
Web	
  Browser	
  
JS	
  ApplicaRon
Web	
  Server	
  
eZ	
  Pla,orm	
  Kernel	
  
PAPI
eZ	
  
JS	
  
REST	
  
Client
REST	
  
API Business	
  	
  
Logic
ApplicaRon	
  	
  
Logic
JS	
  Framework	
  
(YUI)
Content	
  	
  
Repository
PresentaRon	
  
Logic
Technical Debt
21
Wanna check it out?
http://doc.ez.no http://share.ez.no
http://www.sitepoint.com/getting-started-ez-platform-vagrant/
22
Where Content Means Business
Thanks! Symfony rocks!
roland.benedetti@ez.no - @rolandbenedetti

More Related Content

What's hot (6)

PDF
ASP.NET on zLinux: A New Workload
Novell
 
PPTX
OSGi made simple - Fuse Application Bundles
Rob Davies
 
PDF
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OpenBlend society
 
PDF
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
Jitendra Bafna
 
PDF
Rich Ajax Platform - theEdge 2012 conference presentation
Nicko Borodachuk
 
PDF
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's
Ricardo Ferreira
 
ASP.NET on zLinux: A New Workload
Novell
 
OSGi made simple - Fuse Application Bundles
Rob Davies
 
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OpenBlend society
 
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
Jitendra Bafna
 
Rich Ajax Platform - theEdge 2012 conference presentation
Nicko Borodachuk
 
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's
Ricardo Ferreira
 

Similar to Ny symfony meetup may 2015 (20)

PDF
Unleash your Symfony projects with eZ Platform
Sébastien Morel
 
PDF
eZ Publish Norwegian Public User Group
Roland Benedetti
 
DOCX
Top PHP Frameworks in 2024 That Developer Must Know
Clarion Technologies
 
PDF
Introducing symfony
Wildan Maulana
 
PPTX
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Jani Tarvainen
 
PDF
Top 6 php framework
Narola Infotech
 
PDF
eZ UnConference#2 - eZ Publish 5 basics Philippe Vincent-Royol & Florent Huck
eZ Publish Community
 
PDF
The distinct advantages of using PHP-Symfony Framework
Mindfire LLC
 
PPT
Ria Applications And PHP
John Coggeshall
 
PDF
Introducing eZ Publish Platform 5.1 - webinar
Roland Benedetti
 
PDF
Introduction to eZ Publish Platform 5.3, the Ventoux release, public webinar
Roland Benedetti
 
PPT
Lamp Zend Security
Ram Srivastava
 
PDF
BEdita, a development platform
Stefano Rosanelli
 
DOCX
Symfony framework-An overview and usability for web development
ifour_bhavesh
 
PDF
POCO C++ Libraries Intro and Overview
Günter Obiltschnig
 
ODP
ERTS 2008 - Using Linux for industrial projects
Christian Charreyre
 
PDF
A Tale of Two Toolkits
Zend by Rogue Wave Software
 
PDF
Redfish and python-redfish for Software Defined Infrastructure
Bruno Cornec
 
PDF
A high profile project with Symfony and API Platform: beIN SPORTS
Smile I.T is open
 
PPT
Workshop Trends In Open Source Tech 1 20 10
NuRelm
 
Unleash your Symfony projects with eZ Platform
Sébastien Morel
 
eZ Publish Norwegian Public User Group
Roland Benedetti
 
Top PHP Frameworks in 2024 That Developer Must Know
Clarion Technologies
 
Introducing symfony
Wildan Maulana
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Jani Tarvainen
 
Top 6 php framework
Narola Infotech
 
eZ UnConference#2 - eZ Publish 5 basics Philippe Vincent-Royol & Florent Huck
eZ Publish Community
 
The distinct advantages of using PHP-Symfony Framework
Mindfire LLC
 
Ria Applications And PHP
John Coggeshall
 
Introducing eZ Publish Platform 5.1 - webinar
Roland Benedetti
 
Introduction to eZ Publish Platform 5.3, the Ventoux release, public webinar
Roland Benedetti
 
Lamp Zend Security
Ram Srivastava
 
BEdita, a development platform
Stefano Rosanelli
 
Symfony framework-An overview and usability for web development
ifour_bhavesh
 
POCO C++ Libraries Intro and Overview
Günter Obiltschnig
 
ERTS 2008 - Using Linux for industrial projects
Christian Charreyre
 
A Tale of Two Toolkits
Zend by Rogue Wave Software
 
Redfish and python-redfish for Software Defined Infrastructure
Bruno Cornec
 
A high profile project with Symfony and API Platform: beIN SPORTS
Smile I.T is open
 
Workshop Trends In Open Source Tech 1 20 10
NuRelm
 
Ad

More from Roland Benedetti (16)

PDF
Decoupled days, headless and decoupled content management, the value for the ...
Roland Benedetti
 
PDF
eZ Platform 2.1: product update
Roland Benedetti
 
PDF
eZ Publish Platform 5.4 public webinar
Roland Benedetti
 
PDF
eZ Summer Camp 2014: interactive dive into ez product backlog
Roland Benedetti
 
PDF
Adaptive, context aware content management in eZ Platform - part 2
Roland Benedetti
 
PDF
Introduction à eZ Publish Platform 5.3
Roland Benedetti
 
PDF
Think product workshop at J. Boye 14, awaken the Steve Jobs in you
Roland Benedetti
 
PDF
User Experience? What is it?
Roland Benedetti
 
PDF
eZ Publish Platform 5.2 - Webinaire d'introduction
Roland Benedetti
 
PDF
eZ Publish Platform 5.2 and roadmap
Roland Benedetti
 
PDF
eZ unconference rolandbenedetti
Roland Benedetti
 
PDF
Story 1.1-basic-edit -sub-items
Roland Benedetti
 
PDF
Story 4 frontpage
Roland Benedetti
 
PDF
Story 3-landing page with form wall
Roland Benedetti
 
PDF
Story 2-search & create container
Roland Benedetti
 
PDF
Story 1
Roland Benedetti
 
Decoupled days, headless and decoupled content management, the value for the ...
Roland Benedetti
 
eZ Platform 2.1: product update
Roland Benedetti
 
eZ Publish Platform 5.4 public webinar
Roland Benedetti
 
eZ Summer Camp 2014: interactive dive into ez product backlog
Roland Benedetti
 
Adaptive, context aware content management in eZ Platform - part 2
Roland Benedetti
 
Introduction à eZ Publish Platform 5.3
Roland Benedetti
 
Think product workshop at J. Boye 14, awaken the Steve Jobs in you
Roland Benedetti
 
User Experience? What is it?
Roland Benedetti
 
eZ Publish Platform 5.2 - Webinaire d'introduction
Roland Benedetti
 
eZ Publish Platform 5.2 and roadmap
Roland Benedetti
 
eZ unconference rolandbenedetti
Roland Benedetti
 
Story 1.1-basic-edit -sub-items
Roland Benedetti
 
Story 4 frontpage
Roland Benedetti
 
Story 3-landing page with form wall
Roland Benedetti
 
Story 2-search & create container
Roland Benedetti
 
Ad

Recently uploaded (20)

PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PPTX
Comprehensive Risk Assessment Module for Smarter Risk Management
EHA Soft Solutions
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PDF
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PPTX
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PPTX
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Comprehensive Risk Assessment Module for Smarter Risk Management
EHA Soft Solutions
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
AOMEI Partition Assistant Crack 10.8.2 + WinPE Free Downlaod New Version 2025
bashirkhan333g
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 

Ny symfony meetup may 2015

  • 1. Where Content Means Business Symfony PHP NYC meetup Why we ditched our legacy framework for Symfony - a journey to Symfony2 (full stack) Roland Benedetti - Product @ezsystems
  • 2. An Open Source PHP CMS Pioneer 2 • Coming from Norway and Europe, but now designed in Brooklyn • Creators of eZ Publish platform, an Open Source CMS pioneer, still alive and kicking! • 40k+ members in the community • More than 5M downloads (stopped counting…) • 2.55M lines of code :-( • Commercial Open Source (GPL) CMS offering for Enterprise • but also fathers of eZ Components, who turned into Apache Zeta Components
  • 3. Back in spring 2011 3 In 2011, eZ Publish 4.x codebase has 8 years, is rock solid, went through PHP4 and PHP5, very well accepted but shows some limitations. Our challenge back then: • To redevelop the core business logic - the content repository and its APIs to allow future scalability and cloud infrastructure needs. • To adopt a real layered architecture and rely on a framework technology used by many and not just us - moving from in-house fwk to a one shared with a wider community.
  • 4. Our options 4 • Our own eZ Components / Zeta components libraries • Zend (slightly loosing traction, and quite heavy) • Symfony 2 (gaining traction) • Moving to another platform (Java / Spring)
  • 5. And we went for… 5 What made us tick: • Native HTTP approach for cache, promising nice perspectives on use of ESI (Edge Side Include) and ability to implement very smart caching. • The very vibrant and growing community (especially in Europe and France) Our major concern: • The performance of Symfony without Cache.
  • 6. Retrospectively 6 A very good move, 1st for non-technical reasons: • Shifting focus to our core activity: the content management, not the app. fwk • Cross pollination between communities (the Symfony community but also other communities using Symfony, like Sylius, Oro, Drupal…) • Fostering contributions in our ecosystem • Making it easier to customize
  • 7. Retrospectively 7 Technically, also a very good move very well adopted in the community. Top 5 of the perks asking developers:
  • 8. #1 Composer 8 A top-notch dependency mgmt tool, PHP is much better than you think :-) Reinvent the way we deploy PHP apps (and eZ Publish)
  • 9. #2 Twig 9 Bye bye home-brewed TPL engine, we loved your fetch-functions but now we can really clearly separate view from business logic!
  • 10. #3 Semantic Configuration 10 Because it’s so much better in YML…
  • 11. #4 Packaging your own App 11 One single app. to rule them all Example: Sylius (http://sylius.org/) + eZ = full Content+Commerce solution (forget connectors)
  • 12. #5 The cache approach, and fit with Varnish 12 We loved the initial cache approach, but we even more love how we were able to extend it to be context aware and smart https://doc.ez.no/display/EZP/Context+aware+HTTP+cache https://github.com/FriendsOfSymfony/FOSHttpCacheBundle
  • 13. Where Content Means Business How we did it?
  • 14. Symfony as components or as a fwk? We wanted a Fwk! 14
  • 15. 15 Symfony as components or as a fwk? We wanted a Fwk!
  • 16. A progressive move with as little BC breaks 16 5.25.1 5.35.0 5.4 legacy New  Stacklegacy eZ Publish eZ Publish Platform eZ Platform
  • 17. Targeted architecture 17 Storage eZ  Pla,orm  Business  Logic Persistence  &  IO  SPI Public  API Symfony2  Web  Framework REST  API Twig  Template  Engine Website  /  Demo  site CMS     User     Interface   End  Users   (Website  users) Editor,     Marketer,     Admin   (CMS  users) Web  Service User  Interface APIs Web  Framework  &  dev Kernel(s) Content  &  Data
  • 18. Current architecture (5.x) … 18Storage legacy  kernel:
 eZ  Publish  Legacy   Business  Locic  (LS)   eZ  Pla,orm  kernel:   eZ  Pla,orm  Business  Logic Persistence  &  IO  SPI Public  API Symfony2  Full  Stack REST  API Twig  Template  Engine eZ  &  custom  controllers eZ  Template  Engine  (LS) Legacy  modules Website  /  Demo  siteCMS  UI  (LS) End  Users   (Website  users) Editor,  Marketer,     Admin   (CMS  users) Web  Service   IntegraRon User  Interface APIs Web  Framework  &  dev Kernel(s) Content  &  Data New  kernel  &  legacy  kernel   Interoperability
  • 19. New architecture (eZ Platform) Storage eZ  Pla,orm  Business  Logic Persistence  &  IO  SPI Public  API Symfony2  Web  Framework REST  API Twig  Template  Engine Website  /  Demo  site eZ  Pla,orm  U.I. End  Users   (Website  users) Editor,     Marketer,     Admin   (CMS  users) Web  Service User  Interface APIs Web  Framework  &  dev Kernel(s) Content  &  Data eZ  Studio legacy   kernel   (opRonal     non  supported  bundle) old  UI
  • 20. New architecture (eZ Platform) Rich  Internet  ApplicaRon   • javaScript  Based   • relying    heavily  on  eZ  REST  API   • YUI  as  a  basis  for  the  JS  framework Storage  System Web  Browser   JS  ApplicaRon Web  Server   eZ  Pla,orm  Kernel   PAPI eZ   JS   REST   Client REST   API Business     Logic ApplicaRon     Logic JS  Framework   (YUI) Content     Repository PresentaRon   Logic
  • 22. Wanna check it out? http://doc.ez.no http://share.ez.no http://www.sitepoint.com/getting-started-ez-platform-vagrant/ 22
  • 23. Where Content Means Business Thanks! Symfony rocks! [email protected] - @rolandbenedetti