SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Develop a Drupal 7 project 
with Drupal 8 in mind 
Joeri van Dooren
WHOAMI 
Who Am I 
Joeri van Dooren 
Technical Coach @ SAGA Consulting Group 
@Ozmodiar 
https://www.drupal.org/u/ozmodiar
SAGA Consulting Group
Context 
• Long life span 
• A lot of custom code 
• A lot of developers 
• Drupal 8 vs Drupal 7
Challenges 
• Migration of custom code to D8 
• External libraries 
• “Big project syndrome”
Code sample: D7
Setup 
The problems… 
• Unreadable 
• Unmaintainable 
• Not testable (enough) 
• Not upgradable 
Vanilla Drupal 7 
Object Oriented Code
Setup 
Vanilla Drupal 7 
What have we done? 
• xautoload module 
• Drupal 8 class structure 
Object Oriented Code
Code sample: OO
Setup 
The problems… 
• Always re-instantiating 
classes 
• Not very maintainable 
• Not the D8 way 
Vanilla Drupal 7 
Object Oriented Code 
Dependency Injection
Setup 
Vanilla Drupal 7 
Object Oriented Code 
Dependency Injection 
What have we done?
Code sample: DI
Setup 
This is better, but… 
• Still not very readable 
• Not flexible enough 
• More D8 style, but… 
• D8 has a better solution 
Vanilla Drupal 7 
Object Oriented Code 
Dependency Injection 
Container
Vanilla Drupal 7 
Setup 
Object Oriented Code 
Dependency Injection 
Container 
What have we done? 
• Custom module 
• Symfony Container 
• D8 uses that too! 
• Copy paste library 
• xautoload module
Code sample: Container
Setup 
This is way better but… 
• Bad library maintenance 
• D8 has a better solution! 
Vanilla Drupal 7 
Object Oriented Code 
Dependency Injection 
Container 
Dependency Manager
Vanilla Drupal 7 
Setup 
Object Oriented Code 
Dependency Injection 
Container 
Dependency Manager 
What have we done? 
• Introduced Composer 
• Better library 
management 
• Libraries not in VCS 
• Drupal 8 uses that too!
Composer 
• Package Manager 
• Packagist.org or other VCS 
• composer.json 
• Vendor folder 
• Autoloading
Code sample: Composer
Setup 
Vanilla Drupal 7 
Object Oriented Code 
Dependency Injection 
Container 
Dependency Manager
Achievements 
• Easy external libraries 
• More Drupal 8 compliant 
• Object Oriented 
• Module structure 
• DI with Symfony Container 
• Less steep learning curve for D8 module dev
Extra advantages 
• Readability 
• Maintainability 
• Extensibility 
• Easy debugging 
• Better testing 
• We got off the island (in D7!)
Points of attention 
• Developers need a new mindset 
• Work around D7 limitations 
• Different code reviews
The next level 
• Run your own Packagist (or Satis) 
• Write your own interfaces to improve code 
reviews 
• Write modules as libraries with a Drupal 
module as adapter
More info 
Getting started 
http://www.saga.be/dic 
Extras 
http://youtu.be/GF0EWdsPfZ4 (dependency Injection) 
https://getcomposer.org 
http://symfony.com/doc/current/book/service_container.html
Want to know more? 
Visit SAGA at our booth
Want to know more? 
Tomorrow, because now:
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

About javascript libraries
About javascript librariesAbout javascript libraries
About javascript librariesHarshal Patil
 
Binding Objective-C Libraries in Xamarin.iOS
Binding Objective-C Libraries in Xamarin.iOSBinding Objective-C Libraries in Xamarin.iOS
Binding Objective-C Libraries in Xamarin.iOSPierce Boggan
 
EPUB for Website Producers
EPUB for Website ProducersEPUB for Website Producers
EPUB for Website Producerswaldoj
 
Olympya web-tools 2011
Olympya web-tools 2011Olympya web-tools 2011
Olympya web-tools 2011Paulo Mattos
 
Web Tools report
Web Tools reportWeb Tools report
Web Tools reportIWMW
 
Introduction to portable class libraries
Introduction to portable class librariesIntroduction to portable class libraries
Introduction to portable class librariesMichael John Peña
 
NOLOH PHP Framework - Unified Server-Side Development
NOLOH PHP Framework - Unified Server-Side DevelopmentNOLOH PHP Framework - Unified Server-Side Development
NOLOH PHP Framework - Unified Server-Side DevelopmentNOLOH LLC.
 
Upgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and GotchasUpgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and GotchasSuzanne Dergacheva
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Marco Breveglieri
 
Drupal 8 introduction
Drupal 8 introductionDrupal 8 introduction
Drupal 8 introductionAditya Ghan
 
1st Chinaonrails Open Course
1st Chinaonrails Open Course1st Chinaonrails Open Course
1st Chinaonrails Open CourseJesse Cai
 
PHP framework difference
PHP framework differencePHP framework difference
PHP framework differenceiScripts
 
WebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsWebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsPop Apps
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflowsstc-siliconvalley
 
PHP Framework
PHP FrameworkPHP Framework
PHP Frameworkceleroo
 
AppeX and JavaScript Support Enhancements in Cincom Smalltalk
AppeX and JavaScript Support Enhancements in Cincom SmalltalkAppeX and JavaScript Support Enhancements in Cincom Smalltalk
AppeX and JavaScript Support Enhancements in Cincom SmalltalkESUG
 

Was ist angesagt? (20)

About javascript libraries
About javascript librariesAbout javascript libraries
About javascript libraries
 
Binding Objective-C Libraries in Xamarin.iOS
Binding Objective-C Libraries in Xamarin.iOSBinding Objective-C Libraries in Xamarin.iOS
Binding Objective-C Libraries in Xamarin.iOS
 
Oop principles
Oop principlesOop principles
Oop principles
 
EPUB for Website Producers
EPUB for Website ProducersEPUB for Website Producers
EPUB for Website Producers
 
Olympya web-tools 2011
Olympya web-tools 2011Olympya web-tools 2011
Olympya web-tools 2011
 
Html5
Html5Html5
Html5
 
Web Tools report
Web Tools reportWeb Tools report
Web Tools report
 
Introduction to portable class libraries
Introduction to portable class librariesIntroduction to portable class libraries
Introduction to portable class libraries
 
NOLOH PHP Framework - Unified Server-Side Development
NOLOH PHP Framework - Unified Server-Side DevelopmentNOLOH PHP Framework - Unified Server-Side Development
NOLOH PHP Framework - Unified Server-Side Development
 
Upgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and GotchasUpgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and Gotchas
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
 
Drupal 8 introduction
Drupal 8 introductionDrupal 8 introduction
Drupal 8 introduction
 
1st Chinaonrails Open Course
1st Chinaonrails Open Course1st Chinaonrails Open Course
1st Chinaonrails Open Course
 
Best PHP Frameworks
Best PHP FrameworksBest PHP Frameworks
Best PHP Frameworks
 
PHP framework difference
PHP framework differencePHP framework difference
PHP framework difference
 
Feature folders
Feature foldersFeature folders
Feature folders
 
WebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsWebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page Apps
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflows
 
PHP Framework
PHP FrameworkPHP Framework
PHP Framework
 
AppeX and JavaScript Support Enhancements in Cincom Smalltalk
AppeX and JavaScript Support Enhancements in Cincom SmalltalkAppeX and JavaScript Support Enhancements in Cincom Smalltalk
AppeX and JavaScript Support Enhancements in Cincom Smalltalk
 

Andere mochten auch

wir haben die monstars - ingifts
wir haben die monstars - ingiftswir haben die monstars - ingifts
wir haben die monstars - ingiftsrobinharrisofi
 
In-vitro-anti-cholinesterase-activities-by-piperine-an-alkaloid-from-the-spic...
In-vitro-anti-cholinesterase-activities-by-piperine-an-alkaloid-from-the-spic...In-vitro-anti-cholinesterase-activities-by-piperine-an-alkaloid-from-the-spic...
In-vitro-anti-cholinesterase-activities-by-piperine-an-alkaloid-from-the-spic...Abigail Coleman
 
Deportes
DeportesDeportes
Deportesivocicc
 
Formato de reporte de practica
Formato de reporte de practicaFormato de reporte de practica
Formato de reporte de practicaflotardk10
 
Biotecnologia
BiotecnologiaBiotecnologia
Biotecnologiaivocicc
 
Bollywood Hollywood
Bollywood HollywoodBollywood Hollywood
Bollywood HollywoodPurab Gandhi
 
Guía transporte acuático
Guía transporte acuáticoGuía transporte acuático
Guía transporte acuáticoLeydy Sanchez
 
Kas dan Rekening Giro & Investasi Jangka pendek
Kas dan Rekening Giro & Investasi Jangka pendekKas dan Rekening Giro & Investasi Jangka pendek
Kas dan Rekening Giro & Investasi Jangka pendekNickthereal
 
Herramientas de complejidad para el futuro sostenible de la vida en el desierto
Herramientas de complejidad para el futuro sostenible de la vida en el desiertoHerramientas de complejidad para el futuro sostenible de la vida en el desierto
Herramientas de complejidad para el futuro sostenible de la vida en el desiertoUniversidad de Buenos Aires
 
Advanced Cojure Microservices
Advanced Cojure MicroservicesAdvanced Cojure Microservices
Advanced Cojure Microservicesinovex GmbH
 
India - Globalisation
India - GlobalisationIndia - Globalisation
India - Globalisationcaptaink99
 

Andere mochten auch (14)

Informática
InformáticaInformática
Informática
 
wir haben die monstars - ingifts
wir haben die monstars - ingiftswir haben die monstars - ingifts
wir haben die monstars - ingifts
 
In-vitro-anti-cholinesterase-activities-by-piperine-an-alkaloid-from-the-spic...
In-vitro-anti-cholinesterase-activities-by-piperine-an-alkaloid-from-the-spic...In-vitro-anti-cholinesterase-activities-by-piperine-an-alkaloid-from-the-spic...
In-vitro-anti-cholinesterase-activities-by-piperine-an-alkaloid-from-the-spic...
 
Deportes
DeportesDeportes
Deportes
 
Formato de reporte de practica
Formato de reporte de practicaFormato de reporte de practica
Formato de reporte de practica
 
Biotecnologia
BiotecnologiaBiotecnologia
Biotecnologia
 
Bollywood Hollywood
Bollywood HollywoodBollywood Hollywood
Bollywood Hollywood
 
Spring 2015 Update Packet
Spring 2015 Update PacketSpring 2015 Update Packet
Spring 2015 Update Packet
 
Guía transporte acuático
Guía transporte acuáticoGuía transporte acuático
Guía transporte acuático
 
Kas dan Rekening Giro & Investasi Jangka pendek
Kas dan Rekening Giro & Investasi Jangka pendekKas dan Rekening Giro & Investasi Jangka pendek
Kas dan Rekening Giro & Investasi Jangka pendek
 
Herramientas de complejidad para el futuro sostenible de la vida en el desierto
Herramientas de complejidad para el futuro sostenible de la vida en el desiertoHerramientas de complejidad para el futuro sostenible de la vida en el desierto
Herramientas de complejidad para el futuro sostenible de la vida en el desierto
 
Html5
Html5Html5
Html5
 
Advanced Cojure Microservices
Advanced Cojure MicroservicesAdvanced Cojure Microservices
Advanced Cojure Microservices
 
India - Globalisation
India - GlobalisationIndia - Globalisation
India - Globalisation
 

Ähnlich wie DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mind

Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...Steve Kessler
 
Drupal 8 deeper dive
Drupal 8 deeper diveDrupal 8 deeper dive
Drupal 8 deeper diveAmazee Labs
 
How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!pixelonion
 
Bootstrap + Drupal Commerce in less than 45 minutes!
Bootstrap + Drupal Commerce in less than 45 minutes!Bootstrap + Drupal Commerce in less than 45 minutes!
Bootstrap + Drupal Commerce in less than 45 minutes!Jorge Diaz
 
Gradle.Enemy at the gates
Gradle.Enemy at the gatesGradle.Enemy at the gates
Gradle.Enemy at the gatesStrannik_2013
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedAlexander Makarov
 
Drupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 versionDrupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 versionDavid Lanier
 
Gradle 2.breaking stereotypes.
Gradle 2.breaking stereotypes.Gradle 2.breaking stereotypes.
Gradle 2.breaking stereotypes.Stfalcon Meetups
 
Using Grunt with Drupal
Using Grunt with DrupalUsing Grunt with Drupal
Using Grunt with Drupalarithmetric
 
Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)Mike Schinkel
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Conference
 
Dipping Your Toe into Drupal 8 Module Development
Dipping Your Toe into Drupal 8 Module DevelopmentDipping Your Toe into Drupal 8 Module Development
Dipping Your Toe into Drupal 8 Module DevelopmentSuzanne Dergacheva
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deploymentheyrocker
 
Drupal Webinar: Ignite and Accelerate Your Drupal 7 to Drupal 9 Migration
Drupal Webinar: Ignite and Accelerate Your Drupal 7 to Drupal 9 MigrationDrupal Webinar: Ignite and Accelerate Your Drupal 7 to Drupal 9 Migration
Drupal Webinar: Ignite and Accelerate Your Drupal 7 to Drupal 9 MigrationCyber-Duck
 
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...Eric Sembrat
 
Your first d8 module
Your first d8 moduleYour first d8 module
Your first d8 moduletedbow
 
How to guarantee your change is integrated to Moodle core
How to guarantee your change is integrated to Moodle coreHow to guarantee your change is integrated to Moodle core
How to guarantee your change is integrated to Moodle coreDan Poltawski
 
Untying the Knots of Web Dev with Internet Explorer
Untying the Knots of Web Dev with Internet Explorer Untying the Knots of Web Dev with Internet Explorer
Untying the Knots of Web Dev with Internet Explorer Sarah Dutkiewicz
 

Ähnlich wie DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mind (20)

Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
 
Drupal 8 deeper dive
Drupal 8 deeper diveDrupal 8 deeper dive
Drupal 8 deeper dive
 
How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!
 
Bootstrap + Drupal Commerce in less than 45 minutes!
Bootstrap + Drupal Commerce in less than 45 minutes!Bootstrap + Drupal Commerce in less than 45 minutes!
Bootstrap + Drupal Commerce in less than 45 minutes!
 
Gradle.Enemy at the gates
Gradle.Enemy at the gatesGradle.Enemy at the gates
Gradle.Enemy at the gates
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
Drupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 versionDrupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 version
 
Gradle 2.breaking stereotypes.
Gradle 2.breaking stereotypes.Gradle 2.breaking stereotypes.
Gradle 2.breaking stereotypes.
 
Agile sites2
Agile sites2Agile sites2
Agile sites2
 
Using Grunt with Drupal
Using Grunt with DrupalUsing Grunt with Drupal
Using Grunt with Drupal
 
Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)Developing Complex WordPress Sites without Fear of Failure (with MVC)
Developing Complex WordPress Sites without Fear of Failure (with MVC)
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
 
Dipping Your Toe into Drupal 8 Module Development
Dipping Your Toe into Drupal 8 Module DevelopmentDipping Your Toe into Drupal 8 Module Development
Dipping Your Toe into Drupal 8 Module Development
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deployment
 
Using Features
Using FeaturesUsing Features
Using Features
 
Drupal Webinar: Ignite and Accelerate Your Drupal 7 to Drupal 9 Migration
Drupal Webinar: Ignite and Accelerate Your Drupal 7 to Drupal 9 MigrationDrupal Webinar: Ignite and Accelerate Your Drupal 7 to Drupal 9 Migration
Drupal Webinar: Ignite and Accelerate Your Drupal 7 to Drupal 9 Migration
 
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
 
Your first d8 module
Your first d8 moduleYour first d8 module
Your first d8 module
 
How to guarantee your change is integrated to Moodle core
How to guarantee your change is integrated to Moodle coreHow to guarantee your change is integrated to Moodle core
How to guarantee your change is integrated to Moodle core
 
Untying the Knots of Web Dev with Internet Explorer
Untying the Knots of Web Dev with Internet Explorer Untying the Knots of Web Dev with Internet Explorer
Untying the Knots of Web Dev with Internet Explorer
 

Kürzlich hochgeladen

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 

Kürzlich hochgeladen (20)

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 

DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mind

  • 1. Develop a Drupal 7 project with Drupal 8 in mind Joeri van Dooren
  • 2. WHOAMI Who Am I Joeri van Dooren Technical Coach @ SAGA Consulting Group @Ozmodiar https://www.drupal.org/u/ozmodiar
  • 4. Context • Long life span • A lot of custom code • A lot of developers • Drupal 8 vs Drupal 7
  • 5. Challenges • Migration of custom code to D8 • External libraries • “Big project syndrome”
  • 7. Setup The problems… • Unreadable • Unmaintainable • Not testable (enough) • Not upgradable Vanilla Drupal 7 Object Oriented Code
  • 8. Setup Vanilla Drupal 7 What have we done? • xautoload module • Drupal 8 class structure Object Oriented Code
  • 10. Setup The problems… • Always re-instantiating classes • Not very maintainable • Not the D8 way Vanilla Drupal 7 Object Oriented Code Dependency Injection
  • 11. Setup Vanilla Drupal 7 Object Oriented Code Dependency Injection What have we done?
  • 13. Setup This is better, but… • Still not very readable • Not flexible enough • More D8 style, but… • D8 has a better solution Vanilla Drupal 7 Object Oriented Code Dependency Injection Container
  • 14. Vanilla Drupal 7 Setup Object Oriented Code Dependency Injection Container What have we done? • Custom module • Symfony Container • D8 uses that too! • Copy paste library • xautoload module
  • 16. Setup This is way better but… • Bad library maintenance • D8 has a better solution! Vanilla Drupal 7 Object Oriented Code Dependency Injection Container Dependency Manager
  • 17. Vanilla Drupal 7 Setup Object Oriented Code Dependency Injection Container Dependency Manager What have we done? • Introduced Composer • Better library management • Libraries not in VCS • Drupal 8 uses that too!
  • 18. Composer • Package Manager • Packagist.org or other VCS • composer.json • Vendor folder • Autoloading
  • 20. Setup Vanilla Drupal 7 Object Oriented Code Dependency Injection Container Dependency Manager
  • 21. Achievements • Easy external libraries • More Drupal 8 compliant • Object Oriented • Module structure • DI with Symfony Container • Less steep learning curve for D8 module dev
  • 22. Extra advantages • Readability • Maintainability • Extensibility • Easy debugging • Better testing • We got off the island (in D7!)
  • 23. Points of attention • Developers need a new mindset • Work around D7 limitations • Different code reviews
  • 24. The next level • Run your own Packagist (or Satis) • Write your own interfaces to improve code reviews • Write modules as libraries with a Drupal module as adapter
  • 25. More info Getting started http://www.saga.be/dic Extras http://youtu.be/GF0EWdsPfZ4 (dependency Injection) https://getcomposer.org http://symfony.com/doc/current/book/service_container.html
  • 26. Want to know more? Visit SAGA at our booth
  • 27. Want to know more? Tomorrow, because now:

Hinweis der Redaktion

  1. - Inactivity…
  2. 5 business units IT projects -> custom projects in Drupal for tourist organisations Online Communication -> websites in Drupal (and other technologies)
  3. Big project More than a year ago
  4. -
  5. Maintainability: Classname veranderen = overal aanpassen door heel de code
  6. Maintainability: Classname veranderen = overal aanpassen door heel de code
  7. - Put very simple: Box full of references to classes that contain business logic, refered to as “services”.
  8. Todo overwegen nadelen voor voordelen