SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
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
 
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
 
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
 
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
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
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
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 

Kürzlich hochgeladen (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
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
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
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
 
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
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.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
 
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
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
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
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 

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