SlideShare a Scribd company logo
1 of 30
On Content Management,
Technology and Refactoring
Jani Tarvainen, @velmu, 2014/12/19
Agenda and Focus
• History, briefly on today and a practical example of one way forward
• Focus on, but not limited to, Open Source PHP Content Management
• I'll just pretend I know it all and am always right
• In a developer mindset, no business agenda
Content management in the Nordics
• EpiServer, Midgard, SiteCore, eZ
Publish, eScenic, Polopoly, Umbraco...
• The Nordics are a great place to do content management, but
momentum seems to be shifting to central Europe
• There are not enough Content Management Hipsters around
• A lot of CMS enthusiasts (WordPressers, Drupalistas, Joomlagsters,
etc.)
• Finns like to build websites, but not tools to build websites?
A reference (nevermind the Finnish)
• ...toimittama ratkaisu on globaalisti käytettävä Internetin julkaisu- ja
sisällönhallintajärjestelmä. Se mahdollistaa sekä konsernin
maailmanlaajuisesti levitettävän aineiston että maakohtaisen,
paikallisilla kielillä valmistettavan sisällön hallinnan ja julkaisun
keskitetysti yhden järjestelmän kautta. Sisällönhallintajärjestelmän
avulla Kone voi lisäksi rakentaa uusia palvelukokonaisuuksia täysin
itsenäisesti.
Y u no say it's responsive?
We had WAP for
that in 2002.
Content Management Yesterday
• Pay a million dollars for some HTML forms, a database and some
scripts to tie those together.
• Noobs started creating similar software for themselves with LAMP
• Better technology does not always "win", hip and easy does.
• Throwing money at it also worked.
Content Management Today
• Everything and nothing has changed
• The forms, DB and scripts free, but they're still just that in better(?)
tech
• The noobs (and PHP) grew up, "their" software now powers the
internet
• You can really setup a great website without coding skillz
• Known brands dominate, even though anyone can create cola
Content Management Today
• Content management is a commodity nowadays
• Expectations high: "Make it work like Google, Facebook and Apple
do"
• Popular tools were not built for today, they have evolved for today
• 10+ year old feature rich software translates to a lot of legacy
• Wordpress and Drupal onboard: REST API is a sure bet in bullshit
bingo
• Status quo likely to hold a few years, nothing groundbreaking in sight?
Content Management Tomorrow?
• The ferry trip ticket is free, but you're expected to spend at the
taxfree on hosting, support, marketing automation, spam blocking...
• Some thoughts on sustainability:
• Scaling Open Source communities
• Five for the Future
Famous quotes
• "WordPress is too big to fail"
• "Nobody ever got fired for buying Drupal"
• "If I had asked people what they wanted, they would have said a
better Joomla!"
• "If all you have is eZ Publish, everything looks like content to publish”
Why change and is it even possible?
• "The Unix philosophy emphasizes building short, simple, clear,
modular, and extensible code that can be easily maintained and
repurposed by developers other than its creators."
• Our current tools are like Windows. Victims of their own success.
• Why do we reinvent the wheel? Create abstractions for content, etc.
• Operating systems being cloudified, but we still scaling with "servers"
not services
Why change and is it even possible?
• The previously impossible does happen: Nokia phones sold to
Microsoft as they fight irrelevance
• There needs to be a real payoff for change, not just tech tinkering
• These systems enforce you to work on their terms and you can't often
genuinely swap pieces like in a framework
• Decoupling been trumpeted for years, but most CMSs remain
monoliths
Bergie's decoupling slide
Create - Decoupled CMS interface from Henri Bergius
Examples of change in LAMP CMSs
• WordPress: Nothing fundamental yet, gradual improvements
• Large scale change will be monumental (not core, but the plugins)
• Giant user and developer base to please
• "We are a framework!"
• Typo3: Write your own PHP web framework
• No, just no.
Examples of change in LAMP CMSs
• Drupal 8: Introducing more common components
• Major technical improvements to Drupal with Symfony Components
• Drupalisms, but with new stuff... a bit of a bastard.
• Some developer upheaval: a credible Drupal 7 fork
• Apostrophe: Rebuilding from scratch (Symfony1 -> Express.js)
• Lots of work and two parallel versions
• An interesting project to follow!
Refactoring
eZ Publish
Some truths about eZ Publish
• eZ Publish is not easy!
• eZ Publish will not take over the world!
• eZ Publish will not be as easy to hack as WordPress!
• eZ Publish does not "have a module for that" like Drupal!
• eZ Publish can still be a good choice for some use cases!
Solid basic concepts since, like... forever
• One application with one or more content repositories (with a tree)
• Perform queries on content (object) or location (node)
• Sites are configured views to a repository:
• Site matching with domain, path, combo
• Site root location
• Languages
• Designs…
Starting point
• Started in 1999, ticks "all the boxes" in the feature lists ('memba
these?)
• Custom MVC framework, DB, based on 2002 PHP4 OOP (static
methods)
• Core product has rich text editing, locations, versioning,
multilanguage, Solr search engine, auditing, web store, full XML
content, REST API, etc...
• Limited popularity due to complexity and learning curve
• It works, but clearly the end is nigh
Refactoring eZ Publish
• Move to full stack Symfony2 with 100% backwards compatibility
• No DB schema change for legacy storage engine
• Storage engines are pluggable, currently legacy and legacy_solr
(Elastic Search being worked on)
• Refactoring legacy functionality gradually to services
• Symfony3 in the future is an evolution, not a revolution
Refactoring eZ Publish
• Leveraging Symfony2 for authentication, routing, Doctrine
DBAL...Uses Symfony2 bundles
• (Flysystem, Stash, Imagine, HTTPCache...)
• Existing framework documentation applies
• It took around 2 years for a version to be honestly great
• New admin interface and other changes in 2015
• Just one Open Source eZ Platform
Relevant versions*
• 4.7: The last legacy version
• 5.4: The last version with Symfony2 and legacy support
• 6.x: Symfony2 stack only
• API: eZ API and Domain objects only
* Community versions use YYYY.MM versioning
Working with 2014.11 - the great
• Woot, it is HMVC through and through. Symfony2 devs feel at home!
• Upgrade from a 2008 eZ Publish worked
• You can gradually refactor your legacy site(s):
• Use a mixture of legacy and new template code
• Access legacy kernel anywhere (in a closure)
• Add new sites without legacy functionality calls
• Caching is Symfony awesome
• PHPStorm autocompletion for API kicks ass
Working with 2014.11 - the bad
• You'll need to know a lot to get started and it's work in progress
• Documentation is not really great, no established good practices
• Would need more "how-to" articles to gain popularity
• Symfony template functionality still not teh bestest (theme
inheritance)
• Rapid development (coding can't touch Drupal clicking, WP
hackability)
• Performance? I guess well built Symfony2 scales enough for most
needs
Working with 2014.11 - the hmmm…
• So it's nice for developers, but no beef for the customers yet
• You can do things faster in XYZ if you know it
• Still limited adoption
• No set public site architecture (think Drupal behaviours, etc.)
• Symfonysms apply
Divide and conquer
• Use best from elsewhere, don't use the CMF/CMS for everything
• Full REST API and a client lib for single page apps (Angular, Ember...)
• Leverage Elcodi or Sylius components for eCommerce
• Push emails to RabbitMQ for sending, or other batch jobs?
• No need to include the whole stack to use just the API in your apps
Some code and stuff
• ezstart, a demo setup
• EzXmlSitemapBundle
• eZ Publish Docker
• Using legacy code
• Signals reference
• eZ Publish Public API
• eZ Publish REST API
• HTTP Caching
Cool links of the day
• Sulu CMF
• Keystone.js
• Bolt CMS
• October CMS
• PHPCR
• ORO CRM
• Developing with prismic.io
• Contentful for developers
• Symfony and CMS: Comparing Bolt, Drupal 8 and eZ Platform
Thanks

More Related Content

What's hot

Overview of Coding Languages
Overview of Coding LanguagesOverview of Coding Languages
Overview of Coding LanguagesGlowTouch
 
From Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm iFrom Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm iAlan Seiden
 
Rails & Backbone.js
Rails & Backbone.jsRails & Backbone.js
Rails & Backbone.jsCheenu Madan
 
Urbanesia - Development History
Urbanesia - Development HistoryUrbanesia - Development History
Urbanesia - Development HistoryBatista Harahap
 
Ria Applications And PHP
Ria Applications And PHPRia Applications And PHP
Ria Applications And PHPJohn Coggeshall
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...Jon Peck
 
Next Generation Web Development Techniques with Cloud Foundry
Next Generation Web Development Techniques with Cloud FoundryNext Generation Web Development Techniques with Cloud Foundry
Next Generation Web Development Techniques with Cloud FoundryMalachi Smith
 
Strategic Modernization with PHP on IBM i
Strategic Modernization with PHP on IBM iStrategic Modernization with PHP on IBM i
Strategic Modernization with PHP on IBM iAlan Seiden
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHPhernanibf
 
The Characteristics of a Successful SPA
The Characteristics of a Successful SPAThe Characteristics of a Successful SPA
The Characteristics of a Successful SPAGil Fink
 
DB2 and PHP in Depth on IBM i
DB2 and PHP in Depth on IBM iDB2 and PHP in Depth on IBM i
DB2 and PHP in Depth on IBM iAlan Seiden
 
20130714 php matsuri - highly available php
20130714   php matsuri - highly available php20130714   php matsuri - highly available php
20130714 php matsuri - highly available phpGraham Weldon
 
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!Howard Greenberg
 
Stop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal developmentStop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal developmentkaspergarnaes
 
Website design & developemet
Website design & developemetWebsite design & developemet
Website design & developemetApurva Tripathi
 
WordPress & Other Content Management Systems
WordPress & Other Content Management SystemsWordPress & Other Content Management Systems
WordPress & Other Content Management SystemsEmily Lewis
 
Web is app 01 13-13
Web is app 01 13-13Web is app 01 13-13
Web is app 01 13-13ronpiovesan
 
2014 01-21-mpi-community-feedback
2014 01-21-mpi-community-feedback2014 01-21-mpi-community-feedback
2014 01-21-mpi-community-feedbackJeff Squyres
 

What's hot (20)

Overview of Coding Languages
Overview of Coding LanguagesOverview of Coding Languages
Overview of Coding Languages
 
From Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm iFrom Zero to ZF: Your first zend framework project on ibm i
From Zero to ZF: Your first zend framework project on ibm i
 
Rails & Backbone.js
Rails & Backbone.jsRails & Backbone.js
Rails & Backbone.js
 
Urbanesia - Development History
Urbanesia - Development HistoryUrbanesia - Development History
Urbanesia - Development History
 
Ria Applications And PHP
Ria Applications And PHPRia Applications And PHP
Ria Applications And PHP
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
 
Next Generation Web Development Techniques with Cloud Foundry
Next Generation Web Development Techniques with Cloud FoundryNext Generation Web Development Techniques with Cloud Foundry
Next Generation Web Development Techniques with Cloud Foundry
 
Strategic Modernization with PHP on IBM i
Strategic Modernization with PHP on IBM iStrategic Modernization with PHP on IBM i
Strategic Modernization with PHP on IBM i
 
Evolution of PHP
Evolution of PHPEvolution of PHP
Evolution of PHP
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHP
 
The Characteristics of a Successful SPA
The Characteristics of a Successful SPAThe Characteristics of a Successful SPA
The Characteristics of a Successful SPA
 
DB2 and PHP in Depth on IBM i
DB2 and PHP in Depth on IBM iDB2 and PHP in Depth on IBM i
DB2 and PHP in Depth on IBM i
 
20130714 php matsuri - highly available php
20130714   php matsuri - highly available php20130714   php matsuri - highly available php
20130714 php matsuri - highly available php
 
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
 
Stop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal developmentStop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal development
 
Php
PhpPhp
Php
 
Website design & developemet
Website design & developemetWebsite design & developemet
Website design & developemet
 
WordPress & Other Content Management Systems
WordPress & Other Content Management SystemsWordPress & Other Content Management Systems
WordPress & Other Content Management Systems
 
Web is app 01 13-13
Web is app 01 13-13Web is app 01 13-13
Web is app 01 13-13
 
2014 01-21-mpi-community-feedback
2014 01-21-mpi-community-feedback2014 01-21-mpi-community-feedback
2014 01-21-mpi-community-feedback
 

Viewers also liked

Mongrel2, a short introduction
Mongrel2, a short introductionMongrel2, a short introduction
Mongrel2, a short introductionPaolo Negri
 
Scaling Social Games
Scaling Social GamesScaling Social Games
Scaling Social GamesPaolo Negri
 
A Documentation Crash Course, LinuxCon 2016
A Documentation Crash Course, LinuxCon 2016A Documentation Crash Course, LinuxCon 2016
A Documentation Crash Course, LinuxCon 2016Chris Ward
 
SimpleDb, an introduction
SimpleDb, an introductionSimpleDb, an introduction
SimpleDb, an introductionPaolo Negri
 
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
Entrez dans le mouvement Maker à l’aide des technologies MicrosoftEntrez dans le mouvement Maker à l’aide des technologies Microsoft
Entrez dans le mouvement Maker à l’aide des technologies MicrosoftFabrice BARBIN
 
Why you should come to DrupalSouth
Why you should come to DrupalSouthWhy you should come to DrupalSouth
Why you should come to DrupalSouthChris Ward
 
Electron - Solving our cross platform dreams?
Electron - Solving our cross platform dreams?Electron - Solving our cross platform dreams?
Electron - Solving our cross platform dreams?Chris Ward
 
Offre développeur Javascript Back-end
Offre développeur Javascript Back-endOffre développeur Javascript Back-end
Offre développeur Javascript Back-endSite Analyzer
 
Contentful Berlin Offices
Contentful Berlin OfficesContentful Berlin Offices
Contentful Berlin OfficesIrina Botea
 
Erlang introduction geek2geek Berlin
Erlang introduction geek2geek BerlinErlang introduction geek2geek Berlin
Erlang introduction geek2geek BerlinPaolo Negri
 
Automate your docs, automate yourself
Automate your docs, automate yourselfAutomate your docs, automate yourself
Automate your docs, automate yourselfChris Ward
 
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...Joe Gollner
 
AWS Lambda in infrastructure
AWS Lambda in infrastructureAWS Lambda in infrastructure
AWS Lambda in infrastructurePaolo Negri
 
Le futur de Drupal et des applications web
Le futur de Drupal et des applications webLe futur de Drupal et des applications web
Le futur de Drupal et des applications webJulien Dubreuil
 
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Paolo Negri
 
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Romain Linsolas
 
Back to the future with static site generators
Back to the future with static site generatorsBack to the future with static site generators
Back to the future with static site generatorsChris Ward
 
ParisJS #10 : PhantomJs
ParisJS #10 : PhantomJs ParisJS #10 : PhantomJs
ParisJS #10 : PhantomJs Maurice Svay
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputPaolo Negri
 
Google : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSGoogle : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSPeak Ace
 

Viewers also liked (20)

Mongrel2, a short introduction
Mongrel2, a short introductionMongrel2, a short introduction
Mongrel2, a short introduction
 
Scaling Social Games
Scaling Social GamesScaling Social Games
Scaling Social Games
 
A Documentation Crash Course, LinuxCon 2016
A Documentation Crash Course, LinuxCon 2016A Documentation Crash Course, LinuxCon 2016
A Documentation Crash Course, LinuxCon 2016
 
SimpleDb, an introduction
SimpleDb, an introductionSimpleDb, an introduction
SimpleDb, an introduction
 
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
Entrez dans le mouvement Maker à l’aide des technologies MicrosoftEntrez dans le mouvement Maker à l’aide des technologies Microsoft
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
 
Why you should come to DrupalSouth
Why you should come to DrupalSouthWhy you should come to DrupalSouth
Why you should come to DrupalSouth
 
Electron - Solving our cross platform dreams?
Electron - Solving our cross platform dreams?Electron - Solving our cross platform dreams?
Electron - Solving our cross platform dreams?
 
Offre développeur Javascript Back-end
Offre développeur Javascript Back-endOffre développeur Javascript Back-end
Offre développeur Javascript Back-end
 
Contentful Berlin Offices
Contentful Berlin OfficesContentful Berlin Offices
Contentful Berlin Offices
 
Erlang introduction geek2geek Berlin
Erlang introduction geek2geek BerlinErlang introduction geek2geek Berlin
Erlang introduction geek2geek Berlin
 
Automate your docs, automate yourself
Automate your docs, automate yourselfAutomate your docs, automate yourself
Automate your docs, automate yourself
 
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
 
AWS Lambda in infrastructure
AWS Lambda in infrastructureAWS Lambda in infrastructure
AWS Lambda in infrastructure
 
Le futur de Drupal et des applications web
Le futur de Drupal et des applications webLe futur de Drupal et des applications web
Le futur de Drupal et des applications web
 
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
 
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
 
Back to the future with static site generators
Back to the future with static site generatorsBack to the future with static site generators
Back to the future with static site generators
 
ParisJS #10 : PhantomJs
ParisJS #10 : PhantomJs ParisJS #10 : PhantomJs
ParisJS #10 : PhantomJs
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughput
 
Google : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JSGoogle : Prise en charge de l'Ajax et de l'Angular JS
Google : Prise en charge de l'Ajax et de l'Angular JS
 

Similar to Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish

Introduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceIntroduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceJen Wei Lee
 
WCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and AlfrescoWCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and AlfrescoAlfresco Software
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
We’re Going Mobile! Great! Wait… What Does That Mean?
We’re Going Mobile! Great! Wait… What Does That Mean?We’re Going Mobile! Great! Wait… What Does That Mean?
We’re Going Mobile! Great! Wait… What Does That Mean?STC-Philadelphia Metro Chapter
 
Drupal 8 introduction
Drupal 8 introductionDrupal 8 introduction
Drupal 8 introductionAditya Ghan
 
Drupal 8 deeper dive
Drupal 8 deeper diveDrupal 8 deeper dive
Drupal 8 deeper diveAmazee Labs
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_phpJeanho Chu
 
Ny symfony meetup may 2015
Ny symfony meetup may 2015Ny symfony meetup may 2015
Ny symfony meetup may 2015Roland Benedetti
 
My cool new Slideshow!
My cool new Slideshow!My cool new Slideshow!
My cool new Slideshow!netzwelt12345
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UKRicard Clau
 
Presentation 1 Web--dev
Presentation 1 Web--devPresentation 1 Web--dev
Presentation 1 Web--devaltsav
 
Php training in bhubaneswar
Php training in bhubaneswar Php training in bhubaneswar
Php training in bhubaneswar litbbsr
 
Php training in bhubaneswar
Php training in bhubaneswar Php training in bhubaneswar
Php training in bhubaneswar litbbsr
 
11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks11 Live Node.js CMS Frameworks
11 Live Node.js CMS FrameworksiScripts
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_phpJeanho Chu
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Cacereshernanibf
 
Top 10 php frameworks in 2021
Top 10 php frameworks in 2021Top 10 php frameworks in 2021
Top 10 php frameworks in 2021MaryamAnwar10
 

Similar to Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish (20)

Introduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceIntroduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital Workplace
 
WCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and AlfrescoWCM-9 WCM Solutions with Drupal and Alfresco
WCM-9 WCM Solutions with Drupal and Alfresco
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
We’re Going Mobile! Great! Wait… What Does That Mean?
We’re Going Mobile! Great! Wait… What Does That Mean?We’re Going Mobile! Great! Wait… What Does That Mean?
We’re Going Mobile! Great! Wait… What Does That Mean?
 
Drupal 8 introduction
Drupal 8 introductionDrupal 8 introduction
Drupal 8 introduction
 
Drupal 8 deeper dive
Drupal 8 deeper diveDrupal 8 deeper dive
Drupal 8 deeper dive
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_php
 
Ny symfony meetup may 2015
Ny symfony meetup may 2015Ny symfony meetup may 2015
Ny symfony meetup may 2015
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
My cool new Slideshow!
My cool new Slideshow!My cool new Slideshow!
My cool new Slideshow!
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Presentation 1 Web--dev
Presentation 1 Web--devPresentation 1 Web--dev
Presentation 1 Web--dev
 
Last Call Media Drupal 8 Case Study
Last Call Media Drupal 8 Case StudyLast Call Media Drupal 8 Case Study
Last Call Media Drupal 8 Case Study
 
Php training in bhubaneswar
Php training in bhubaneswar Php training in bhubaneswar
Php training in bhubaneswar
 
Php training in bhubaneswar
Php training in bhubaneswar Php training in bhubaneswar
Php training in bhubaneswar
 
11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_php
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Caceres
 
Week01 jan19
Week01 jan19Week01 jan19
Week01 jan19
 
Top 10 php frameworks in 2021
Top 10 php frameworks in 2021Top 10 php frameworks in 2021
Top 10 php frameworks in 2021
 

More from Jani Tarvainen

Aggregation APi in Ibexa DXP by Adam Wójs
Aggregation APi in Ibexa DXP by Adam WójsAggregation APi in Ibexa DXP by Adam Wójs
Aggregation APi in Ibexa DXP by Adam WójsJani Tarvainen
 
GraphQL APIs is with eZ Platform, a Symfony CMS
GraphQL APIs is with eZ Platform, a Symfony CMSGraphQL APIs is with eZ Platform, a Symfony CMS
GraphQL APIs is with eZ Platform, a Symfony CMSJani Tarvainen
 
Introduction to eZ Platform v2 UI Customization
Introduction to eZ Platform v2 UI CustomizationIntroduction to eZ Platform v2 UI Customization
Introduction to eZ Platform v2 UI CustomizationJani Tarvainen
 
Easy Decoupled Sitebuilding with GraphQL and Next.js
Easy Decoupled Sitebuilding with GraphQL and Next.jsEasy Decoupled Sitebuilding with GraphQL and Next.js
Easy Decoupled Sitebuilding with GraphQL and Next.jsJani Tarvainen
 
Doctrine ORM with eZ Platform REST API and GraphQL
Doctrine ORM with eZ Platform REST API and GraphQLDoctrine ORM with eZ Platform REST API and GraphQL
Doctrine ORM with eZ Platform REST API and GraphQLJani Tarvainen
 
Using eZ Platform as a Headless CMS (with Vue.js)
Using eZ Platform as a Headless CMS (with Vue.js)Using eZ Platform as a Headless CMS (with Vue.js)
Using eZ Platform as a Headless CMS (with Vue.js)Jani Tarvainen
 
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVM
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVMPerformance Comparison of PHP 5.6 vs. 7.0 vs HHVM
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVMJani Tarvainen
 
Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016Jani Tarvainen
 
Isomorphic server side rendering with Twig
Isomorphic server side rendering with TwigIsomorphic server side rendering with Twig
Isomorphic server side rendering with TwigJani Tarvainen
 

More from Jani Tarvainen (9)

Aggregation APi in Ibexa DXP by Adam Wójs
Aggregation APi in Ibexa DXP by Adam WójsAggregation APi in Ibexa DXP by Adam Wójs
Aggregation APi in Ibexa DXP by Adam Wójs
 
GraphQL APIs is with eZ Platform, a Symfony CMS
GraphQL APIs is with eZ Platform, a Symfony CMSGraphQL APIs is with eZ Platform, a Symfony CMS
GraphQL APIs is with eZ Platform, a Symfony CMS
 
Introduction to eZ Platform v2 UI Customization
Introduction to eZ Platform v2 UI CustomizationIntroduction to eZ Platform v2 UI Customization
Introduction to eZ Platform v2 UI Customization
 
Easy Decoupled Sitebuilding with GraphQL and Next.js
Easy Decoupled Sitebuilding with GraphQL and Next.jsEasy Decoupled Sitebuilding with GraphQL and Next.js
Easy Decoupled Sitebuilding with GraphQL and Next.js
 
Doctrine ORM with eZ Platform REST API and GraphQL
Doctrine ORM with eZ Platform REST API and GraphQLDoctrine ORM with eZ Platform REST API and GraphQL
Doctrine ORM with eZ Platform REST API and GraphQL
 
Using eZ Platform as a Headless CMS (with Vue.js)
Using eZ Platform as a Headless CMS (with Vue.js)Using eZ Platform as a Headless CMS (with Vue.js)
Using eZ Platform as a Headless CMS (with Vue.js)
 
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVM
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVMPerformance Comparison of PHP 5.6 vs. 7.0 vs HHVM
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVM
 
Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016
 
Isomorphic server side rendering with Twig
Isomorphic server side rendering with TwigIsomorphic server side rendering with Twig
Isomorphic server side rendering with Twig
 

Recently uploaded

定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationMarko4394
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 

Recently uploaded (20)

定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentation
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 

Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish

  • 1. On Content Management, Technology and Refactoring Jani Tarvainen, @velmu, 2014/12/19
  • 2. Agenda and Focus • History, briefly on today and a practical example of one way forward • Focus on, but not limited to, Open Source PHP Content Management • I'll just pretend I know it all and am always right • In a developer mindset, no business agenda
  • 3. Content management in the Nordics • EpiServer, Midgard, SiteCore, eZ Publish, eScenic, Polopoly, Umbraco... • The Nordics are a great place to do content management, but momentum seems to be shifting to central Europe • There are not enough Content Management Hipsters around • A lot of CMS enthusiasts (WordPressers, Drupalistas, Joomlagsters, etc.) • Finns like to build websites, but not tools to build websites?
  • 4. A reference (nevermind the Finnish) • ...toimittama ratkaisu on globaalisti käytettävä Internetin julkaisu- ja sisällönhallintajärjestelmä. Se mahdollistaa sekä konsernin maailmanlaajuisesti levitettävän aineiston että maakohtaisen, paikallisilla kielillä valmistettavan sisällön hallinnan ja julkaisun keskitetysti yhden järjestelmän kautta. Sisällönhallintajärjestelmän avulla Kone voi lisäksi rakentaa uusia palvelukokonaisuuksia täysin itsenäisesti.
  • 5. Y u no say it's responsive?
  • 6. We had WAP for that in 2002.
  • 7. Content Management Yesterday • Pay a million dollars for some HTML forms, a database and some scripts to tie those together. • Noobs started creating similar software for themselves with LAMP • Better technology does not always "win", hip and easy does. • Throwing money at it also worked.
  • 8. Content Management Today • Everything and nothing has changed • The forms, DB and scripts free, but they're still just that in better(?) tech • The noobs (and PHP) grew up, "their" software now powers the internet • You can really setup a great website without coding skillz • Known brands dominate, even though anyone can create cola
  • 9. Content Management Today • Content management is a commodity nowadays • Expectations high: "Make it work like Google, Facebook and Apple do" • Popular tools were not built for today, they have evolved for today • 10+ year old feature rich software translates to a lot of legacy • Wordpress and Drupal onboard: REST API is a sure bet in bullshit bingo • Status quo likely to hold a few years, nothing groundbreaking in sight?
  • 10. Content Management Tomorrow? • The ferry trip ticket is free, but you're expected to spend at the taxfree on hosting, support, marketing automation, spam blocking... • Some thoughts on sustainability: • Scaling Open Source communities • Five for the Future
  • 11. Famous quotes • "WordPress is too big to fail" • "Nobody ever got fired for buying Drupal" • "If I had asked people what they wanted, they would have said a better Joomla!" • "If all you have is eZ Publish, everything looks like content to publish”
  • 12. Why change and is it even possible? • "The Unix philosophy emphasizes building short, simple, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators." • Our current tools are like Windows. Victims of their own success. • Why do we reinvent the wheel? Create abstractions for content, etc. • Operating systems being cloudified, but we still scaling with "servers" not services
  • 13. Why change and is it even possible? • The previously impossible does happen: Nokia phones sold to Microsoft as they fight irrelevance • There needs to be a real payoff for change, not just tech tinkering • These systems enforce you to work on their terms and you can't often genuinely swap pieces like in a framework • Decoupling been trumpeted for years, but most CMSs remain monoliths
  • 14. Bergie's decoupling slide Create - Decoupled CMS interface from Henri Bergius
  • 15. Examples of change in LAMP CMSs • WordPress: Nothing fundamental yet, gradual improvements • Large scale change will be monumental (not core, but the plugins) • Giant user and developer base to please • "We are a framework!" • Typo3: Write your own PHP web framework • No, just no.
  • 16. Examples of change in LAMP CMSs • Drupal 8: Introducing more common components • Major technical improvements to Drupal with Symfony Components • Drupalisms, but with new stuff... a bit of a bastard. • Some developer upheaval: a credible Drupal 7 fork • Apostrophe: Rebuilding from scratch (Symfony1 -> Express.js) • Lots of work and two parallel versions • An interesting project to follow!
  • 18. Some truths about eZ Publish • eZ Publish is not easy! • eZ Publish will not take over the world! • eZ Publish will not be as easy to hack as WordPress! • eZ Publish does not "have a module for that" like Drupal! • eZ Publish can still be a good choice for some use cases!
  • 19. Solid basic concepts since, like... forever • One application with one or more content repositories (with a tree) • Perform queries on content (object) or location (node) • Sites are configured views to a repository: • Site matching with domain, path, combo • Site root location • Languages • Designs…
  • 20. Starting point • Started in 1999, ticks "all the boxes" in the feature lists ('memba these?) • Custom MVC framework, DB, based on 2002 PHP4 OOP (static methods) • Core product has rich text editing, locations, versioning, multilanguage, Solr search engine, auditing, web store, full XML content, REST API, etc... • Limited popularity due to complexity and learning curve • It works, but clearly the end is nigh
  • 21. Refactoring eZ Publish • Move to full stack Symfony2 with 100% backwards compatibility • No DB schema change for legacy storage engine • Storage engines are pluggable, currently legacy and legacy_solr (Elastic Search being worked on) • Refactoring legacy functionality gradually to services • Symfony3 in the future is an evolution, not a revolution
  • 22. Refactoring eZ Publish • Leveraging Symfony2 for authentication, routing, Doctrine DBAL...Uses Symfony2 bundles • (Flysystem, Stash, Imagine, HTTPCache...) • Existing framework documentation applies • It took around 2 years for a version to be honestly great • New admin interface and other changes in 2015 • Just one Open Source eZ Platform
  • 23. Relevant versions* • 4.7: The last legacy version • 5.4: The last version with Symfony2 and legacy support • 6.x: Symfony2 stack only • API: eZ API and Domain objects only * Community versions use YYYY.MM versioning
  • 24. Working with 2014.11 - the great • Woot, it is HMVC through and through. Symfony2 devs feel at home! • Upgrade from a 2008 eZ Publish worked • You can gradually refactor your legacy site(s): • Use a mixture of legacy and new template code • Access legacy kernel anywhere (in a closure) • Add new sites without legacy functionality calls • Caching is Symfony awesome • PHPStorm autocompletion for API kicks ass
  • 25. Working with 2014.11 - the bad • You'll need to know a lot to get started and it's work in progress • Documentation is not really great, no established good practices • Would need more "how-to" articles to gain popularity • Symfony template functionality still not teh bestest (theme inheritance) • Rapid development (coding can't touch Drupal clicking, WP hackability) • Performance? I guess well built Symfony2 scales enough for most needs
  • 26. Working with 2014.11 - the hmmm… • So it's nice for developers, but no beef for the customers yet • You can do things faster in XYZ if you know it • Still limited adoption • No set public site architecture (think Drupal behaviours, etc.) • Symfonysms apply
  • 27. Divide and conquer • Use best from elsewhere, don't use the CMF/CMS for everything • Full REST API and a client lib for single page apps (Angular, Ember...) • Leverage Elcodi or Sylius components for eCommerce • Push emails to RabbitMQ for sending, or other batch jobs? • No need to include the whole stack to use just the API in your apps
  • 28. Some code and stuff • ezstart, a demo setup • EzXmlSitemapBundle • eZ Publish Docker • Using legacy code • Signals reference • eZ Publish Public API • eZ Publish REST API • HTTP Caching
  • 29. Cool links of the day • Sulu CMF • Keystone.js • Bolt CMS • October CMS • PHPCR • ORO CRM • Developing with prismic.io • Contentful for developers • Symfony and CMS: Comparing Bolt, Drupal 8 and eZ Platform