SlideShare a Scribd company logo
1 of 23
Download to read offline
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

ASP.NET on zLinux: A New Workload
ASP.NET on zLinux: A New WorkloadASP.NET on zLinux: A New Workload
ASP.NET on zLinux: A New WorkloadNovell
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesRob Davies
 
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
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
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ Jitendra Bafna
 
Rich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentationRich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentationNicko Borodachuk
 
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB'sBuilding Agile and Resilient Schema Transformations using Apache Kafka and ESB's
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB'sRicardo Ferreira
 

What's hot (6)

ASP.NET on zLinux: A New Workload
ASP.NET on zLinux: A New WorkloadASP.NET on zLinux: A New Workload
ASP.NET on zLinux: A New Workload
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application Bundles
 
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
 
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
MuleSoft Surat Virtual Meetup#33 - Unleash the power of Anypoint MQ and DLQ
 
Rich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentationRich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentation
 
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB'sBuilding Agile and Resilient Schema Transformations using Apache Kafka and ESB's
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's
 

Similar to How we ditched our legacy framework for Symfony

Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformSébastien Morel
 
eZ Publish Norwegian Public User Group
eZ Publish Norwegian Public User GroupeZ Publish Norwegian Public User Group
eZ Publish Norwegian Public User GroupRoland Benedetti
 
Top PHP Frameworks in 2024 That Developer Must Know
Top PHP Frameworks in 2024 That Developer Must KnowTop PHP Frameworks in 2024 That Developer Must Know
Top PHP Frameworks in 2024 That Developer Must KnowClarion Technologies
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishJani Tarvainen
 
eZ UnConference#2 - eZ Publish 5 basics Philippe Vincent-Royol & Florent Huck
eZ UnConference#2 - eZ Publish 5 basics Philippe Vincent-Royol & Florent HuckeZ UnConference#2 - eZ Publish 5 basics Philippe Vincent-Royol & Florent Huck
eZ UnConference#2 - eZ Publish 5 basics Philippe Vincent-Royol & Florent HuckeZ Publish Community
 
The distinct advantages of using PHP-Symfony Framework
The distinct advantages of using PHP-Symfony FrameworkThe distinct advantages of using PHP-Symfony Framework
The distinct advantages of using PHP-Symfony FrameworkMindfire LLC
 
Ria Applications And PHP
Ria Applications And PHPRia Applications And PHP
Ria Applications And PHPJohn Coggeshall
 
Introducing eZ Publish Platform 5.1 - webinar
Introducing eZ Publish Platform 5.1 - webinarIntroducing eZ Publish Platform 5.1 - webinar
Introducing eZ Publish Platform 5.1 - webinarRoland Benedetti
 
Introduction to eZ Publish Platform 5.3, the Ventoux release, public webinar
Introduction to eZ Publish Platform 5.3, the Ventoux release, public webinarIntroduction to eZ Publish Platform 5.3, the Ventoux release, public webinar
Introduction to eZ Publish Platform 5.3, the Ventoux release, public webinarRoland Benedetti
 
BEdita, a development platform
BEdita, a development platformBEdita, a development platform
BEdita, a development platformStefano Rosanelli
 
Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentifour_bhavesh
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewGünter Obiltschnig
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsChristian Charreyre
 
Redfish and python-redfish for Software Defined Infrastructure
Redfish and python-redfish for Software Defined InfrastructureRedfish and python-redfish for Software Defined Infrastructure
Redfish and python-redfish for Software Defined InfrastructureBruno Cornec
 
A high profile project with Symfony and API Platform: beIN SPORTS
A high profile project with Symfony and API Platform: beIN SPORTSA high profile project with Symfony and API Platform: beIN SPORTS
A high profile project with Symfony and API Platform: beIN SPORTSSmile I.T is open
 
Workshop Trends In Open Source Tech 1 20 10
Workshop Trends In Open Source Tech 1 20 10Workshop Trends In Open Source Tech 1 20 10
Workshop Trends In Open Source Tech 1 20 10NuRelm
 

Similar to How we ditched our legacy framework for Symfony (20)

Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ Platform
 
eZ Publish Norwegian Public User Group
eZ Publish Norwegian Public User GroupeZ Publish Norwegian Public User Group
eZ Publish Norwegian Public User Group
 
Top PHP Frameworks in 2024 That Developer Must Know
Top PHP Frameworks in 2024 That Developer Must KnowTop PHP Frameworks in 2024 That Developer Must Know
Top PHP Frameworks in 2024 That Developer Must Know
 
Introducing symfony
Introducing symfonyIntroducing symfony
Introducing symfony
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
 
Top 6 php framework
Top 6 php frameworkTop 6 php framework
Top 6 php framework
 
eZ UnConference#2 - eZ Publish 5 basics Philippe Vincent-Royol & Florent Huck
eZ UnConference#2 - eZ Publish 5 basics Philippe Vincent-Royol & Florent HuckeZ UnConference#2 - eZ Publish 5 basics Philippe Vincent-Royol & Florent Huck
eZ UnConference#2 - eZ Publish 5 basics Philippe Vincent-Royol & Florent Huck
 
The distinct advantages of using PHP-Symfony Framework
The distinct advantages of using PHP-Symfony FrameworkThe distinct advantages of using PHP-Symfony Framework
The distinct advantages of using PHP-Symfony Framework
 
Ria Applications And PHP
Ria Applications And PHPRia Applications And PHP
Ria Applications And PHP
 
Introducing eZ Publish Platform 5.1 - webinar
Introducing eZ Publish Platform 5.1 - webinarIntroducing eZ Publish Platform 5.1 - webinar
Introducing eZ Publish Platform 5.1 - webinar
 
Introduction to eZ Publish Platform 5.3, the Ventoux release, public webinar
Introduction to eZ Publish Platform 5.3, the Ventoux release, public webinarIntroduction to eZ Publish Platform 5.3, the Ventoux release, public webinar
Introduction to eZ Publish Platform 5.3, the Ventoux release, public webinar
 
Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
 
BEdita, a development platform
BEdita, a development platformBEdita, a development platform
BEdita, a development platform
 
Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web development
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projects
 
A Tale of Two Toolkits
A Tale of Two ToolkitsA Tale of Two Toolkits
A Tale of Two Toolkits
 
Redfish and python-redfish for Software Defined Infrastructure
Redfish and python-redfish for Software Defined InfrastructureRedfish and python-redfish for Software Defined Infrastructure
Redfish and python-redfish for Software Defined Infrastructure
 
A high profile project with Symfony and API Platform: beIN SPORTS
A high profile project with Symfony and API Platform: beIN SPORTSA high profile project with Symfony and API Platform: beIN SPORTS
A high profile project with Symfony and API Platform: beIN SPORTS
 
Workshop Trends In Open Source Tech 1 20 10
Workshop Trends In Open Source Tech 1 20 10Workshop Trends In Open Source Tech 1 20 10
Workshop Trends In Open Source Tech 1 20 10
 

More from Roland Benedetti

Decoupled days, headless and decoupled content management, the value for the ...
Decoupled days, headless and decoupled content management, the value for the ...Decoupled days, headless and decoupled content management, the value for the ...
Decoupled days, headless and decoupled content management, the value for the ...Roland Benedetti
 
eZ Platform 2.1: product update
eZ Platform 2.1: product updateeZ Platform 2.1: product update
eZ Platform 2.1: product updateRoland Benedetti
 
eZ Publish Platform 5.4 public webinar
eZ Publish Platform 5.4 public webinareZ Publish Platform 5.4 public webinar
eZ Publish Platform 5.4 public webinarRoland Benedetti
 
eZ Summer Camp 2014: interactive dive into ez product backlog
eZ Summer Camp 2014:  interactive dive into ez product backlogeZ Summer Camp 2014:  interactive dive into ez product backlog
eZ Summer Camp 2014: interactive dive into ez product backlogRoland Benedetti
 
Adaptive, context aware content management in eZ Platform - part 2
Adaptive, context aware content management in eZ Platform - part 2Adaptive, context aware content management in eZ Platform - part 2
Adaptive, context aware content management in eZ Platform - part 2Roland Benedetti
 
Introduction à eZ Publish Platform 5.3
Introduction à eZ Publish Platform 5.3 Introduction à eZ Publish Platform 5.3
Introduction à eZ Publish Platform 5.3 Roland Benedetti
 
Think product workshop at J. Boye 14, awaken the Steve Jobs in you
Think product workshop at J. Boye 14, awaken the Steve Jobs in youThink product workshop at J. Boye 14, awaken the Steve Jobs in you
Think product workshop at J. Boye 14, awaken the Steve Jobs in youRoland Benedetti
 
User Experience? What is it?
User Experience? What is it?User Experience? What is it?
User Experience? What is it?Roland Benedetti
 
eZ Publish Platform 5.2 - Webinaire d'introduction
eZ Publish Platform 5.2 - Webinaire d'introductioneZ Publish Platform 5.2 - Webinaire d'introduction
eZ Publish Platform 5.2 - Webinaire d'introductionRoland Benedetti
 
eZ Publish Platform 5.2 and roadmap
eZ Publish Platform 5.2 and roadmapeZ Publish Platform 5.2 and roadmap
eZ Publish Platform 5.2 and roadmapRoland Benedetti
 
eZ unconference rolandbenedetti
eZ unconference rolandbenedettieZ unconference rolandbenedetti
eZ unconference rolandbenedettiRoland Benedetti
 
Story 1.1-basic-edit -sub-items
Story 1.1-basic-edit -sub-itemsStory 1.1-basic-edit -sub-items
Story 1.1-basic-edit -sub-itemsRoland Benedetti
 
Story 3-landing page with form wall
Story 3-landing page with form wallStory 3-landing page with form wall
Story 3-landing page with form wallRoland Benedetti
 
Story 2-search & create container
Story 2-search & create containerStory 2-search & create container
Story 2-search & create containerRoland Benedetti
 

More from Roland Benedetti (16)

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

Recently uploaded

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 

Recently uploaded (20)

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 

How we ditched our legacy framework for Symfony

  • 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! roland.benedetti@ez.no - @rolandbenedetti