SlideShare a Scribd company logo
1 of 33
Download to read offline
THE ROAD TO PHP 7.1
A PERSONAL STORY
Michelangelo van Dam
‣ Pro PHP consultant at in2it
‣ President of PHPBenelux
‣ Open-Source contributor
‣ Conference Speaker
‣ ZCE and ZF-CE
in itPROFESSIONAL PHP SERVICES
OH “PHP 7”
Zeev Suraski (@zeevs)
DECEMBER 3, 2015
A REVOLUTION STARTS
#GOPHP7
IMPORTANT QUESTIONS
HOW CAN WE MOVE TO PHP 7?
▸ Review PHP 7's changelog
▸ are we still using deprecated functions?
▸ are we using PHP extensions?
▸ do we depend on 3rd party packages?
THE BEST WAY TO LEARN…
I PRESENTED ON PHP 7
▸ Required me to do the research
▸ Needed to engage with PHP core developers
▸ Played with the code base
▸ Simulated small challenges
▸ Reviewed the results
▸ BONUS: I could speak at meetups!!!
PRESENTING ON A SUBJECT IS THE BEST
WAY TO BECOME AN EXPERT ON THAT
SUBJECT.
Cal Evans (@CalEvans)
TWEETABLE QUOTE
FINDING ANSWERS
CODE ANALYSIS
▸ Reviewing codebases against PHP 7 change log
▸ Reviewing critical extensions and removing non-critical extensions
▸ Negotiate roadmaps with 3rd party vendors and software suppliers
▸ Discussing with the PHP community (global and local)
▸ To see what others have done (and learn from their experiences)
▸ To understand the position of projects and frameworks
NOT READY (YET)!
Let’s get to ready…
LET’S START THE ELIMINATION ROUND
LET’S START THE ELIMINATION ROUND
mysqlnd_ms
DB ATK-Framework
HTTP2
Net2
Drupal6
ereg_*
mcrypt_*
mysql_*
CHANGE TAKES TIME
THE INCONVENIENT TRUTH
PHP 7.1
AND THEN THERE WAS…
WE NEED TO STEP UP!
WHAT WE ALREADY DID
IMPROVE GOING FORWARD
▸ Elimination of non-compatible code
▸ Refactored code base
▸ Better understanding of our weaknesses
▸ Separation of responsibilities
ENTER THE “ARMOURY”
USE THE PHPORCE
THE ANALYSIS
LIST OF TOOLS WE USED
▸ Phan: https://github.com/etsy/phan

Phan is a static analyzer for PHP. Phan prefers to avoid false-positives and
attempts to prove incorrectness rather than correctness.
▸ PHPStan: https://github.com/phpstan/phpstan

PHP Static Analysis Tool - discover bugs in your code without running it!
▸ PHPCompatibilty: https://github.com/wimg/PHPCompatibility

PHP Compatibility check for PHP_CodeSniffer
#COMMUNITYWORKS
THE COMMUNITY IS STRONG
SHARING AS WE GO FORWARD
▸ Sharing our issues & solutions
▸ Promoting PHP 7.1
▸ Improve adoption rate
▸ Becoming an expert in upgrades
▸ Learning more about PHP 7
TO CHANGE IS DIFFICULT. NOT TO
CHANGE IS FATAL.
William Pollard
TWEETABLE QUOTE
OUR RESULT
TIME TO SHOW
THE NUMBERS
MEMORY
CPU
0 17,5 35 52,5 70
PHP 5.6 PHP 7.1
THE "GRAPH"
QUICK RECAP
TIMELINE
▸ Sep 2015: Research starts with PHP 7.0.0 RC3
▸ Dec 2015: Release of PHP 7.0.0
▸ Mar 2016: Planning starts
▸ Jul 2016: Preparation development starts
▸ Nov 2016: Testing phase starts
▸ Dec 2016: Release of PHP 7.1.0
▸ Jan 2017: Upgrade completed 🎉
in it2PROFESSIONAL PHP SERVICES
Michelangelo van Dam
Zend Certified Engineer
training@in2it.be - www.in2it.be
T @in2itvof - F in2itvof
PHPUnit
Getting Started
Advanced Testing
Zend Framework 3
Fundamentals
Advanced
Azure PHP
Quick time to market
Scale up and out
Security
Locking down
web apps
PHPBootcamp
PHP 7 from
Zero to Hero
DevOps
Continuous
Deployment
www.dragonbe.com
T @DragonBe - F DragonBe
Slides: https://in2.se/road-to-php71

More Related Content

What's hot

PHPUnit with Magento
PHPUnit with MagentoPHPUnit with Magento
PHPUnit with MagentoTu Hoang
 
Cf objective2014 testing-testingeverywhere
Cf objective2014   testing-testingeverywhereCf objective2014   testing-testingeverywhere
Cf objective2014 testing-testingeverywhereColdFusionConference
 
How have we developed product without bugs
How have we developed product without bugsHow have we developed product without bugs
How have we developed product without bugsSigma Software
 
Андрій Юн — Drupal contributor HOWTO
Андрій Юн — Drupal contributor HOWTOАндрій Юн — Drupal contributor HOWTO
Андрій Юн — Drupal contributor HOWTOLEDC 2016
 
Real Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan DidakReal Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan DidakEast Bay WordPress Meetup
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpAhmed Abdou
 
Show an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIShow an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIJoel Byler
 

What's hot (13)

Tdd com Java
Tdd com JavaTdd com Java
Tdd com Java
 
PHPUnit with Magento
PHPUnit with MagentoPHPUnit with Magento
PHPUnit with Magento
 
Cf objective2014 testing-testingeverywhere
Cf objective2014   testing-testingeverywhereCf objective2014   testing-testingeverywhere
Cf objective2014 testing-testingeverywhere
 
How have we developed product without bugs
How have we developed product without bugsHow have we developed product without bugs
How have we developed product without bugs
 
LVPHP.org
LVPHP.orgLVPHP.org
LVPHP.org
 
Extended slow parts
Extended slow partsExtended slow parts
Extended slow parts
 
Андрій Юн — Drupal contributor HOWTO
Андрій Юн — Drupal contributor HOWTOАндрій Юн — Drupal contributor HOWTO
Андрій Юн — Drupal contributor HOWTO
 
How Testing Changed My Life
How Testing Changed My LifeHow Testing Changed My Life
How Testing Changed My Life
 
Tdd
TddTdd
Tdd
 
Real Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan DidakReal Developer Tools for WordPress by Stefan Didak
Real Developer Tools for WordPress by Stefan Didak
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in php
 
PhpStorm for WordPress
PhpStorm for WordPressPhpStorm for WordPress
PhpStorm for WordPress
 
Show an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIShow an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CI
 

Viewers also liked

Leveraging a distributed architecture to your advantage
Leveraging a distributed architecture to your advantageLeveraging a distributed architecture to your advantage
Leveraging a distributed architecture to your advantageMichelangelo van Dam
 
How to please the editor
How to please the editorHow to please the editor
How to please the editorPatrick Broens
 
Präsentation zu EXT:form by TRITUM
Präsentation zu EXT:form by TRITUMPräsentation zu EXT:form by TRITUM
Präsentation zu EXT:form by TRITUMTRITUM
 
Open source for a successful business
Open source for a successful businessOpen source for a successful business
Open source for a successful businessMichelangelo van Dam
 
Presentation Yoast SEO for TYPO3 and Magento
Presentation Yoast SEO for TYPO3 and MagentoPresentation Yoast SEO for TYPO3 and Magento
Presentation Yoast SEO for TYPO3 and MagentoRichard Haeser
 
PHP 7.x - past, present, future
PHP 7.x - past, present, futurePHP 7.x - past, present, future
PHP 7.x - past, present, futureBoyan Yordanov
 
Keeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkKeeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkJeremy Kendall
 
Essay about event driven architecture
Essay about event driven architectureEssay about event driven architecture
Essay about event driven architecturePaulo Victor Gomes
 
Php i-slides
Php i-slidesPhp i-slides
Php i-slidesAbu Bakar
 
Easily extend your existing php app with an api
Easily extend your existing php app with an apiEasily extend your existing php app with an api
Easily extend your existing php app with an apiMichelangelo van Dam
 
Apigility reloaded
Apigility reloadedApigility reloaded
Apigility reloadedRalf Eggert
 
Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Adam Culp
 
PHPunconf14: Apigility Einführung
PHPunconf14: Apigility EinführungPHPunconf14: Apigility Einführung
PHPunconf14: Apigility EinführungRalf Eggert
 
A month by month guide to On Hold Marketing for Restaurants and Hospitality.
A month by month guide to On Hold Marketing for Restaurants and Hospitality.A month by month guide to On Hold Marketing for Restaurants and Hospitality.
A month by month guide to On Hold Marketing for Restaurants and Hospitality.Advitel_crow_greencm15
 
CSS入門教學
CSS入門教學CSS入門教學
CSS入門教學鈺棠 徐
 

Viewers also liked (20)

Leveraging a distributed architecture to your advantage
Leveraging a distributed architecture to your advantageLeveraging a distributed architecture to your advantage
Leveraging a distributed architecture to your advantage
 
How to please the editor
How to please the editorHow to please the editor
How to please the editor
 
20170309 typo3 camp-venlo
20170309 typo3 camp-venlo20170309 typo3 camp-venlo
20170309 typo3 camp-venlo
 
Präsentation zu EXT:form by TRITUM
Präsentation zu EXT:form by TRITUMPräsentation zu EXT:form by TRITUM
Präsentation zu EXT:form by TRITUM
 
Open source for a successful business
Open source for a successful businessOpen source for a successful business
Open source for a successful business
 
The Continuous PHP Pipeline
The Continuous PHP PipelineThe Continuous PHP Pipeline
The Continuous PHP Pipeline
 
200K+ reasons security is a must
200K+ reasons security is a must200K+ reasons security is a must
200K+ reasons security is a must
 
Php
PhpPhp
Php
 
Presentation Yoast SEO for TYPO3 and Magento
Presentation Yoast SEO for TYPO3 and MagentoPresentation Yoast SEO for TYPO3 and Magento
Presentation Yoast SEO for TYPO3 and Magento
 
PHP 7.x - past, present, future
PHP 7.x - past, present, futurePHP 7.x - past, present, future
PHP 7.x - past, present, future
 
Keeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkKeeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro framework
 
Essay about event driven architecture
Essay about event driven architectureEssay about event driven architecture
Essay about event driven architecture
 
Php i-slides
Php i-slidesPhp i-slides
Php i-slides
 
Easily extend your existing php app with an api
Easily extend your existing php app with an apiEasily extend your existing php app with an api
Easily extend your existing php app with an api
 
Apigility reloaded
Apigility reloadedApigility reloaded
Apigility reloaded
 
Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2
 
PHPunconf14: Apigility Einführung
PHPunconf14: Apigility EinführungPHPunconf14: Apigility Einführung
PHPunconf14: Apigility Einführung
 
Why react matters
Why react mattersWhy react matters
Why react matters
 
A month by month guide to On Hold Marketing for Restaurants and Hospitality.
A month by month guide to On Hold Marketing for Restaurants and Hospitality.A month by month guide to On Hold Marketing for Restaurants and Hospitality.
A month by month guide to On Hold Marketing for Restaurants and Hospitality.
 
CSS入門教學
CSS入門教學CSS入門教學
CSS入門教學
 

Similar to The road to php 7.1

Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHPEric Johnson
 
Deploying php applications
Deploying php applicationsDeploying php applications
Deploying php applicationsNiklas Modess
 
Introduction to PHP (SDPHP)
Introduction to PHP   (SDPHP)Introduction to PHP   (SDPHP)
Introduction to PHP (SDPHP)Eric Johnson
 
SFScon22 - Daniele Fontani - Change the scripting experience with opensource.pdf
SFScon22 - Daniele Fontani - Change the scripting experience with opensource.pdfSFScon22 - Daniele Fontani - Change the scripting experience with opensource.pdf
SFScon22 - Daniele Fontani - Change the scripting experience with opensource.pdfSouth Tyrol Free Software Conference
 
PHP Doesn't Suck
PHP Doesn't SuckPHP Doesn't Suck
PHP Doesn't SuckJohn Hobbs
 
Top 100 PHP Questions and Answers
Top 100 PHP Questions and AnswersTop 100 PHP Questions and Answers
Top 100 PHP Questions and Answersiimjobs and hirist
 
So You Just Inherited a $Legacy Application...
So You Just Inherited a $Legacy Application...So You Just Inherited a $Legacy Application...
So You Just Inherited a $Legacy Application...Joe Ferguson
 
PHP Ecosystem and Best Practices
PHP Ecosystem and Best PracticesPHP Ecosystem and Best Practices
PHP Ecosystem and Best PracticesAvivi Academy
 
Upstate CSCI 450 PHP Chapters 5, 12, 13
Upstate CSCI 450 PHP Chapters 5, 12, 13Upstate CSCI 450 PHP Chapters 5, 12, 13
Upstate CSCI 450 PHP Chapters 5, 12, 13DanWooster1
 
PHP 4? OMG! A small vademecum for obsolete software migration.
PHP 4? OMG! A small vademecum for obsolete software migration.PHP 4? OMG! A small vademecum for obsolete software migration.
PHP 4? OMG! A small vademecum for obsolete software migration.Francesco Fullone
 
Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...Combell NV
 
Code review workshop
Code review workshopCode review workshop
Code review workshopDamien Seguy
 
So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016Joe Ferguson
 
Learn PHP Lacture1
Learn PHP Lacture1Learn PHP Lacture1
Learn PHP Lacture1ADARSH BHATT
 
APIdays Paris 2019 Backend is the new frontend by Antoine Cheron
APIdays Paris 2019 Backend is the new frontend by Antoine CheronAPIdays Paris 2019 Backend is the new frontend by Antoine Cheron
APIdays Paris 2019 Backend is the new frontend by Antoine Cheronapidays
 

Similar to The road to php 7.1 (20)

Php myths
Php mythsPhp myths
Php myths
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHP
 
Deploying php applications
Deploying php applicationsDeploying php applications
Deploying php applications
 
Introduction to PHP (SDPHP)
Introduction to PHP   (SDPHP)Introduction to PHP   (SDPHP)
Introduction to PHP (SDPHP)
 
SFScon22 - Daniele Fontani - Change the scripting experience with opensource.pdf
SFScon22 - Daniele Fontani - Change the scripting experience with opensource.pdfSFScon22 - Daniele Fontani - Change the scripting experience with opensource.pdf
SFScon22 - Daniele Fontani - Change the scripting experience with opensource.pdf
 
PHP Doesn't Suck
PHP Doesn't SuckPHP Doesn't Suck
PHP Doesn't Suck
 
Php
PhpPhp
Php
 
Top 100 PHP Questions and Answers
Top 100 PHP Questions and AnswersTop 100 PHP Questions and Answers
Top 100 PHP Questions and Answers
 
So You Just Inherited a $Legacy Application...
So You Just Inherited a $Legacy Application...So You Just Inherited a $Legacy Application...
So You Just Inherited a $Legacy Application...
 
PHP Ecosystem and Best Practices
PHP Ecosystem and Best PracticesPHP Ecosystem and Best Practices
PHP Ecosystem and Best Practices
 
Upstate CSCI 450 PHP Chapters 5, 12, 13
Upstate CSCI 450 PHP Chapters 5, 12, 13Upstate CSCI 450 PHP Chapters 5, 12, 13
Upstate CSCI 450 PHP Chapters 5, 12, 13
 
PHP 4? OMG! A small vademecum for obsolete software migration.
PHP 4? OMG! A small vademecum for obsolete software migration.PHP 4? OMG! A small vademecum for obsolete software migration.
PHP 4? OMG! A small vademecum for obsolete software migration.
 
Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...
 
Php vs asp.net
Php vs asp.netPhp vs asp.net
Php vs asp.net
 
Code review workshop
Code review workshopCode review workshop
Code review workshop
 
So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016
 
Performance Tuning with XHProf
Performance Tuning with XHProfPerformance Tuning with XHProf
Performance Tuning with XHProf
 
Learn PHP Lacture1
Learn PHP Lacture1Learn PHP Lacture1
Learn PHP Lacture1
 
APIdays Paris 2019 Backend is the new frontend by Antoine Cheron
APIdays Paris 2019 Backend is the new frontend by Antoine CheronAPIdays Paris 2019 Backend is the new frontend by Antoine Cheron
APIdays Paris 2019 Backend is the new frontend by Antoine Cheron
 
PHP Web Development.pdf
PHP Web Development.pdfPHP Web Development.pdf
PHP Web Development.pdf
 

More from Michelangelo van Dam

GDPR Art. 25 - Privacy by design and default
GDPR Art. 25 - Privacy by design and defaultGDPR Art. 25 - Privacy by design and default
GDPR Art. 25 - Privacy by design and defaultMichelangelo van Dam
 
Moving from app services to azure functions
Moving from app services to azure functionsMoving from app services to azure functions
Moving from app services to azure functionsMichelangelo van Dam
 
General Data Protection Regulation, a developer's story
General Data Protection Regulation, a developer's storyGeneral Data Protection Regulation, a developer's story
General Data Protection Regulation, a developer's storyMichelangelo van Dam
 
Decouple your framework now, thank me later
Decouple your framework now, thank me laterDecouple your framework now, thank me later
Decouple your framework now, thank me laterMichelangelo van Dam
 
Deploy to azure in less then 15 minutes
Deploy to azure in less then 15 minutesDeploy to azure in less then 15 minutes
Deploy to azure in less then 15 minutesMichelangelo van Dam
 
Azure and OSS, a match made in heaven
Azure and OSS, a match made in heavenAzure and OSS, a match made in heaven
Azure and OSS, a match made in heavenMichelangelo van Dam
 
Zf2 how arrays will save your project
Zf2   how arrays will save your projectZf2   how arrays will save your project
Zf2 how arrays will save your projectMichelangelo van Dam
 
PHPUnit Episode iv.iii: Return of the tests
PHPUnit Episode iv.iii: Return of the testsPHPUnit Episode iv.iii: Return of the tests
PHPUnit Episode iv.iii: Return of the testsMichelangelo van Dam
 
90K Reasons Security is a Must - PHPWorld 2014
90K Reasons Security is a Must - PHPWorld 201490K Reasons Security is a Must - PHPWorld 2014
90K Reasons Security is a Must - PHPWorld 2014Michelangelo van Dam
 
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014Michelangelo van Dam
 
Community works for business - LoneStarPHP 2014
Community works for business - LoneStarPHP 2014Community works for business - LoneStarPHP 2014
Community works for business - LoneStarPHP 2014Michelangelo van Dam
 

More from Michelangelo van Dam (20)

GDPR Art. 25 - Privacy by design and default
GDPR Art. 25 - Privacy by design and defaultGDPR Art. 25 - Privacy by design and default
GDPR Art. 25 - Privacy by design and default
 
Moving from app services to azure functions
Moving from app services to azure functionsMoving from app services to azure functions
Moving from app services to azure functions
 
Privacy by design
Privacy by designPrivacy by design
Privacy by design
 
DevOps or DevSecOps
DevOps or DevSecOpsDevOps or DevSecOps
DevOps or DevSecOps
 
Privacy by design
Privacy by designPrivacy by design
Privacy by design
 
Continuous deployment 2.0
Continuous deployment 2.0Continuous deployment 2.0
Continuous deployment 2.0
 
Let your tests drive your code
Let your tests drive your codeLet your tests drive your code
Let your tests drive your code
 
General Data Protection Regulation, a developer's story
General Data Protection Regulation, a developer's storyGeneral Data Protection Regulation, a developer's story
General Data Protection Regulation, a developer's story
 
Decouple your framework now, thank me later
Decouple your framework now, thank me laterDecouple your framework now, thank me later
Decouple your framework now, thank me later
 
Deploy to azure in less then 15 minutes
Deploy to azure in less then 15 minutesDeploy to azure in less then 15 minutes
Deploy to azure in less then 15 minutes
 
Azure and OSS, a match made in heaven
Azure and OSS, a match made in heavenAzure and OSS, a match made in heaven
Azure and OSS, a match made in heaven
 
Getting hands dirty with php7
Getting hands dirty with php7Getting hands dirty with php7
Getting hands dirty with php7
 
Zf2 how arrays will save your project
Zf2   how arrays will save your projectZf2   how arrays will save your project
Zf2 how arrays will save your project
 
Create, test, secure, repeat
Create, test, secure, repeatCreate, test, secure, repeat
Create, test, secure, repeat
 
PHPUnit Episode iv.iii: Return of the tests
PHPUnit Episode iv.iii: Return of the testsPHPUnit Episode iv.iii: Return of the tests
PHPUnit Episode iv.iii: Return of the tests
 
Your code are my tests
Your code are my testsYour code are my tests
Your code are my tests
 
QA for PHP projects
QA for PHP projectsQA for PHP projects
QA for PHP projects
 
90K Reasons Security is a Must - PHPWorld 2014
90K Reasons Security is a Must - PHPWorld 201490K Reasons Security is a Must - PHPWorld 2014
90K Reasons Security is a Must - PHPWorld 2014
 
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
 
Community works for business - LoneStarPHP 2014
Community works for business - LoneStarPHP 2014Community works for business - LoneStarPHP 2014
Community works for business - LoneStarPHP 2014
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

The road to php 7.1

  • 1. THE ROAD TO PHP 7.1 A PERSONAL STORY
  • 2. Michelangelo van Dam ‣ Pro PHP consultant at in2it ‣ President of PHPBenelux ‣ Open-Source contributor ‣ Conference Speaker ‣ ZCE and ZF-CE in itPROFESSIONAL PHP SERVICES
  • 3. OH “PHP 7” Zeev Suraski (@zeevs)
  • 4.
  • 5.
  • 6.
  • 7. DECEMBER 3, 2015 A REVOLUTION STARTS
  • 9.
  • 10. IMPORTANT QUESTIONS HOW CAN WE MOVE TO PHP 7? ▸ Review PHP 7's changelog ▸ are we still using deprecated functions? ▸ are we using PHP extensions? ▸ do we depend on 3rd party packages?
  • 11. THE BEST WAY TO LEARN… I PRESENTED ON PHP 7 ▸ Required me to do the research ▸ Needed to engage with PHP core developers ▸ Played with the code base ▸ Simulated small challenges ▸ Reviewed the results ▸ BONUS: I could speak at meetups!!!
  • 12. PRESENTING ON A SUBJECT IS THE BEST WAY TO BECOME AN EXPERT ON THAT SUBJECT. Cal Evans (@CalEvans) TWEETABLE QUOTE
  • 13. FINDING ANSWERS CODE ANALYSIS ▸ Reviewing codebases against PHP 7 change log ▸ Reviewing critical extensions and removing non-critical extensions ▸ Negotiate roadmaps with 3rd party vendors and software suppliers ▸ Discussing with the PHP community (global and local) ▸ To see what others have done (and learn from their experiences) ▸ To understand the position of projects and frameworks
  • 14. NOT READY (YET)! Let’s get to ready…
  • 15. LET’S START THE ELIMINATION ROUND
  • 16. LET’S START THE ELIMINATION ROUND mysqlnd_ms DB ATK-Framework HTTP2 Net2 Drupal6 ereg_* mcrypt_* mysql_*
  • 17. CHANGE TAKES TIME THE INCONVENIENT TRUTH
  • 18. PHP 7.1 AND THEN THERE WAS…
  • 19. WE NEED TO STEP UP!
  • 20. WHAT WE ALREADY DID IMPROVE GOING FORWARD ▸ Elimination of non-compatible code ▸ Refactored code base ▸ Better understanding of our weaknesses ▸ Separation of responsibilities
  • 22. THE ANALYSIS LIST OF TOOLS WE USED ▸ Phan: https://github.com/etsy/phan
 Phan is a static analyzer for PHP. Phan prefers to avoid false-positives and attempts to prove incorrectness rather than correctness. ▸ PHPStan: https://github.com/phpstan/phpstan
 PHP Static Analysis Tool - discover bugs in your code without running it! ▸ PHPCompatibilty: https://github.com/wimg/PHPCompatibility
 PHP Compatibility check for PHP_CodeSniffer
  • 23.
  • 25.
  • 26.
  • 27. THE COMMUNITY IS STRONG SHARING AS WE GO FORWARD ▸ Sharing our issues & solutions ▸ Promoting PHP 7.1 ▸ Improve adoption rate ▸ Becoming an expert in upgrades ▸ Learning more about PHP 7
  • 28. TO CHANGE IS DIFFICULT. NOT TO CHANGE IS FATAL. William Pollard TWEETABLE QUOTE
  • 30. THE NUMBERS MEMORY CPU 0 17,5 35 52,5 70 PHP 5.6 PHP 7.1
  • 32. QUICK RECAP TIMELINE ▸ Sep 2015: Research starts with PHP 7.0.0 RC3 ▸ Dec 2015: Release of PHP 7.0.0 ▸ Mar 2016: Planning starts ▸ Jul 2016: Preparation development starts ▸ Nov 2016: Testing phase starts ▸ Dec 2016: Release of PHP 7.1.0 ▸ Jan 2017: Upgrade completed 🎉
  • 33. in it2PROFESSIONAL PHP SERVICES Michelangelo van Dam Zend Certified Engineer training@in2it.be - www.in2it.be T @in2itvof - F in2itvof PHPUnit Getting Started Advanced Testing Zend Framework 3 Fundamentals Advanced Azure PHP Quick time to market Scale up and out Security Locking down web apps PHPBootcamp PHP 7 from Zero to Hero DevOps Continuous Deployment www.dragonbe.com T @DragonBe - F DragonBe Slides: https://in2.se/road-to-php71