SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
Top ten of php 7.4
Andrea Giannantonio
Team Leader in Immobiliare.it
@JellyBellyDev
RELEASE DATE PHP 7.4
•Alpha1 - 13 Jun 2019
•Beta1 - 25 Jul 2019
•RC1 - 5 Sep 2019
•RC2 - 19 Sep 2019
•RC3 - 03 Oct 2019
•RC4 - 18 Oct 2019
•RC5 - 31 Oct 2019
•RC6 - 14 Nov 2019
•7.4.0 - 28 Nov 2019 (GA)
•7.4.1 - 18 Dec 2019 (GA)
•7.4.2 - 23 Jan 2020 (GA)
TOP TEN
•Typed Properties
•Arrow Functions
•Null Coalescing Assignment Operator
•Spread Operator in Array
•Foreign Function Interface
•Weak References
•Covariant Returns and Contravariant Parameters
•Preloading
•Deprecate left-associative ternary operator
•Performance of PHP 7.4
ONE
Typed Properties
PARAM AND RETURN TYPES: PHP 7.1
Allowed: bool, int, float, string, array, object,
iterable, self, parent, any class or interface
name, and nullable types (?type)
Not Allowed: void and callable
TYPED PROPERTIES: PHP 7.4
TYPED PROPERTIES: NULL
TYPED PROPERTIES: STRICT_TYPES OFF
TYPED PROPERTIES: INVARIANT
Property types (public and protected) are invariant
TWO
Arrow Functions
ARROW FUNCTIONS
ARROW FUNCTIONS
ARROW FUNCTIONS
Syntax: fn(parameter_list) => expr
Note: fn is a reserved word in PHP 7.4
THREE
Spread Operator in Array
SPREAD OPERATOR
Note that this only works with arrays with numerical keys.
SPREAD OPERATOR
It also works on Traversable objects
FOUR
Null Coalescing Assignment Operator
NULL COALESCING ASSIGNMENT OPERATOR
Note that, while the coalesce operator `??` is a comparison operator, `??=` is an assignment operator.
FIVE
Foreign Function Interface
FOREIGN FUNCTION INTERFACE
•Enables the execution of C code directly from PHP
•Provides a FFI class to manage the bridge between C and PHP
•A C function can be executed as a PHP method of FFI class
•php.ini: `ffi.enable=false`
FFI: EXAMPLE 1
FFI: EXAMPLE 2
FFI: PHP TENSORFLOW
Dmitry Stogov has developed an experimental binding
of TensorFlow library in PHP using FFI:
dstogov/php-tensorflow
SIX
Weak References
WEAK REFERENCES
Weak References allow the programmer to retain a reference to an object which does not prevent the
object from being destroyed; They are useful for implementing cache like structures. 
SEVEN
Covariant Returns and Contravariant
Parameters
COVARIANT RETURNS AND CONTRAVARIANT PARAMETERS
Variance is a property of class hierarchies describing how the types of a type constructor
affect subtypes.
•Invariant: if the type of the super-type constrain the type of the subtype.
•Covariant: if the ordering of types is preserved (types are ordered from
more specific to more generic).
•Contravariant: if it reverses the order (types are ordered from more
generic to more specific).
Currently, PHP has mostly invariant parameter and return types, with few exceptions. This
RFC proposes to allow covariance and contravariance on parameter types and return types.
In general, a type constructor can be:
COVARIANT RETURN TYPE: EXAMPLE
CONTRAVARIANT PARAMETER TYPE: EXAMPLE
EIGHT
Preloading
OPCACHE
PRELOADING
"On server startup – before any application code is run – we may load a
certain set of PHP files into memory – and make their contents
“permanently available” to all subsequent requests that will be served by
that server. All the functions and classes defined in these files will be
available to requests out of the box, exactly like internal entities."
Dmitry Stogov
PRELOADING
• Preloading is controlled by a specific php.ini directive: opcache.preload
• This directive specifies a PHP script to be compiled and executed at server start-up
• Each file to cache, should be added in this script using opcache_compile_file()
PRELOADING: COMPOSITION
opcache.preload=“/tmp/preload.php”
OPCache Preloading in Symfony
opcache.preload=/path/to/project/var/cache/prod/App_KernelProdContainer.preload.php
PRELOADING: BENCHMARKS
• Preloading disabled
• Naive preloading - all Laravel and application code
I found this benchmark by stitcher.io on Laravel project
• Preloading Optimised - dumped all classes used by `get_declared_classes()`
Scenarios:
PRELOADING: BENCHMARKS
Requests per second Time per request
That's around a 25% performance gain compared to not using
preloading, and an 8% gain compared to using the naive approach.
PRELOADING: CONS
• Restart the web server to update opcache.preload
• Not compatible with host running multiple applications, or multiple
versions of applications
NINE
Deprecate left-associative ternary operator
DEPRECATE LEFT-ASSOCIATIVE TERNARY OPERATOR
Unlike most other languages, the ternary operator in PHP is left-associative rather than right-associative.
Not only being uncommon, it is also confusing for programmers who switch between different languages.
PHP 7.4 proposes to remove the left-associativity and requires the use of parentheses instead.
• Starting from PHP 7.4, nested ternaries without explicit use of parentheses will throw a deprecation warning.
• Starting from PHP 8.0, there will be a compile runtime error.
TEN
Performance of PHP 7.4
PERFORMANCE OF PHP 7.4
• He compared the execution time of PHP7.4RC1 with PHP 7.1, 7.2 and 7.3
• He used Zendbench.php script as benchmark
I found this benchmark on PHP 7.X by Enrico Zimuel
• He took the total execution time
• Full experiment report here
PERFORMANCE OF PHP 7.4: RESULTS
PHP ver. Exec. time (in sec)
7.1.32 455
7.2.22 437
7.3.9 373
7.4RC1 334
PERFORMANCE OF PHP 7.4: RESULTS
PHP 7.4 IS THE FASTEST!
• 7.4RC1 is 26% faster than 7.1.32
• 7.4RC1 is 22% faster than 7.2.22
• 7.4RC1 is 10% faster than 7.3.9
LET’S GO CODING IN PHP 7.4
Thanks for the attention
Andrea Giannantonio
@JellyBellyDev
REFERENCES
• https://www.php.net
• https://wiki.php.net/rfc#php_74
• https://www.zimuel.it/slides/pugtorino/php74#/
• https://www.zimuel.it/blog/benchmarking_PHP74
• https://medium.com/@daniel.dan/whats-new-in-php-7-4-top-10-features-that-you-need-to-know-e0acc3191f0a
• https://kinsta.com/blog/php-7-4/
• https://stitcher.io/blog/new-in-php-74
• https://stitcher.io/blog/php-preload-benchmarks
• https://support.cloud.engineyard.com/hc/en-us/articles/205411888-PHP-Performance-I-Everything-You-Need-to-
Know-About-OpCode-Caches
• https://carbon.now.sh/

Contenu connexe

Tendances

Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8Talha Ocakçı
 
Zen and the Art of REST API documentation - MuCon London 2015
Zen and the Art of REST API documentation - MuCon London 2015Zen and the Art of REST API documentation - MuCon London 2015
Zen and the Art of REST API documentation - MuCon London 2015Steve Judd
 
java8-patterns
java8-patternsjava8-patterns
java8-patternsJustin Lin
 
Using Aspects for Language Portability (SCAM 2010)
Using Aspects for Language Portability (SCAM 2010)Using Aspects for Language Portability (SCAM 2010)
Using Aspects for Language Portability (SCAM 2010)lennartkats
 
C# 9 and 10 - What's cool?
C# 9 and 10 - What's cool?C# 9 and 10 - What's cool?
C# 9 and 10 - What's cool?Christian Nagel
 
JDT Embraces Lambda Expressions - EclipseCon North America 2014
JDT Embraces Lambda Expressions - EclipseCon North America 2014JDT Embraces Lambda Expressions - EclipseCon North America 2014
JDT Embraces Lambda Expressions - EclipseCon North America 2014Noopur Gupta
 
Highly Surmountable Challenges in Ruby+OMR JIT Compilation
Highly Surmountable Challenges in Ruby+OMR JIT CompilationHighly Surmountable Challenges in Ruby+OMR JIT Compilation
Highly Surmountable Challenges in Ruby+OMR JIT CompilationMatthew Gaudet
 
Coldfusion
ColdfusionColdfusion
ColdfusionRam
 
The Behaviour-Driven Programmer
The Behaviour-Driven ProgrammerThe Behaviour-Driven Programmer
The Behaviour-Driven ProgrammerJulien Biezemans
 
Gdg dev fest 2107 to kotlin, with love
Gdg dev fest 2107   to kotlin, with loveGdg dev fest 2107   to kotlin, with love
Gdg dev fest 2107 to kotlin, with loveAyman Mahfouz
 
High Performance Solution for PHP7
High Performance Solution for PHP7High Performance Solution for PHP7
High Performance Solution for PHP7Xinchen Hui
 
ARB_gl_spirv implementation in Mesa: status update (XDC 2018)
ARB_gl_spirv implementation in Mesa: status update (XDC 2018)ARB_gl_spirv implementation in Mesa: status update (XDC 2018)
ARB_gl_spirv implementation in Mesa: status update (XDC 2018)Igalia
 
The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)lennartkats
 
Static analysis for perl
Static analysis for perlStatic analysis for perl
Static analysis for perlmoznion
 
Eclipse and Java 8 - Eclipse Day India 2013
Eclipse and Java 8 - Eclipse Day India 2013Eclipse and Java 8 - Eclipse Day India 2013
Eclipse and Java 8 - Eclipse Day India 2013Noopur Gupta
 

Tendances (20)

Functional programming with Java 8
Functional programming with Java 8Functional programming with Java 8
Functional programming with Java 8
 
Zen and the Art of REST API documentation - MuCon London 2015
Zen and the Art of REST API documentation - MuCon London 2015Zen and the Art of REST API documentation - MuCon London 2015
Zen and the Art of REST API documentation - MuCon London 2015
 
C-Sharp 6.0 ver2
C-Sharp 6.0 ver2C-Sharp 6.0 ver2
C-Sharp 6.0 ver2
 
Intro dotnet
Intro dotnetIntro dotnet
Intro dotnet
 
java8-patterns
java8-patternsjava8-patterns
java8-patterns
 
Using Aspects for Language Portability (SCAM 2010)
Using Aspects for Language Portability (SCAM 2010)Using Aspects for Language Portability (SCAM 2010)
Using Aspects for Language Portability (SCAM 2010)
 
CPAN Curation
CPAN CurationCPAN Curation
CPAN Curation
 
C# 9 and 10 - What's cool?
C# 9 and 10 - What's cool?C# 9 and 10 - What's cool?
C# 9 and 10 - What's cool?
 
Java 8 concurrency abstractions
Java 8 concurrency abstractionsJava 8 concurrency abstractions
Java 8 concurrency abstractions
 
JDT Embraces Lambda Expressions - EclipseCon North America 2014
JDT Embraces Lambda Expressions - EclipseCon North America 2014JDT Embraces Lambda Expressions - EclipseCon North America 2014
JDT Embraces Lambda Expressions - EclipseCon North America 2014
 
Highly Surmountable Challenges in Ruby+OMR JIT Compilation
Highly Surmountable Challenges in Ruby+OMR JIT CompilationHighly Surmountable Challenges in Ruby+OMR JIT Compilation
Highly Surmountable Challenges in Ruby+OMR JIT Compilation
 
Coldfusion
ColdfusionColdfusion
Coldfusion
 
The Behaviour-Driven Programmer
The Behaviour-Driven ProgrammerThe Behaviour-Driven Programmer
The Behaviour-Driven Programmer
 
Gdg dev fest 2107 to kotlin, with love
Gdg dev fest 2107   to kotlin, with loveGdg dev fest 2107   to kotlin, with love
Gdg dev fest 2107 to kotlin, with love
 
High Performance Solution for PHP7
High Performance Solution for PHP7High Performance Solution for PHP7
High Performance Solution for PHP7
 
ARB_gl_spirv implementation in Mesa: status update (XDC 2018)
ARB_gl_spirv implementation in Mesa: status update (XDC 2018)ARB_gl_spirv implementation in Mesa: status update (XDC 2018)
ARB_gl_spirv implementation in Mesa: status update (XDC 2018)
 
The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)
 
The compilation process
The compilation processThe compilation process
The compilation process
 
Static analysis for perl
Static analysis for perlStatic analysis for perl
Static analysis for perl
 
Eclipse and Java 8 - Eclipse Day India 2013
Eclipse and Java 8 - Eclipse Day India 2013Eclipse and Java 8 - Eclipse Day India 2013
Eclipse and Java 8 - Eclipse Day India 2013
 

Similaire à Top ten of PHP 7.4

Modern Frontend Technology
Modern Frontend TechnologyModern Frontend Technology
Modern Frontend TechnologyShip Hsu
 
Workin ontherailsroad
Workin ontherailsroadWorkin ontherailsroad
Workin ontherailsroadJim Jones
 
WorkinOnTheRailsRoad
WorkinOnTheRailsRoadWorkinOnTheRailsRoad
WorkinOnTheRailsRoadwebuploader
 
Object Oriented Programming with Laravel - Session 2
Object Oriented Programming with Laravel - Session 2Object Oriented Programming with Laravel - Session 2
Object Oriented Programming with Laravel - Session 2Shahrzad Peyman
 
reactive_programming_for_java_developers.pdf
reactive_programming_for_java_developers.pdfreactive_programming_for_java_developers.pdf
reactive_programming_for_java_developers.pdfAkshitkumar437417
 
PHP 7X New Features
PHP 7X New FeaturesPHP 7X New Features
PHP 7X New FeaturesThanh Tai
 
Cakephp vs. laravel
Cakephp vs. laravelCakephp vs. laravel
Cakephp vs. laravelGirnarSoft
 
High Availability for OpenStack
High Availability for OpenStackHigh Availability for OpenStack
High Availability for OpenStackKamesh Pemmaraju
 
Php 5.6 vs Php 7 performance comparison
Php 5.6 vs Php 7 performance comparisonPhp 5.6 vs Php 7 performance comparison
Php 5.6 vs Php 7 performance comparisonTu Pham
 
Laravel, beyond the framework
Laravel, beyond the frameworkLaravel, beyond the framework
Laravel, beyond the frameworkRamesh Mhetre
 
Laravel vs ASP.NET Framework .pdf
Laravel vs ASP.NET Framework .pdfLaravel vs ASP.NET Framework .pdf
Laravel vs ASP.NET Framework .pdfWPWeb Infotech
 
Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web FrameworkDaniel Woods
 
Chapter 9 & chapter 10 solutions
Chapter 9 & chapter 10 solutionsChapter 9 & chapter 10 solutions
Chapter 9 & chapter 10 solutionsSaeed Iqbal
 
Making the Most of Modern PHP in Drupal 7
Making the Most of Modern PHP in Drupal 7Making the Most of Modern PHP in Drupal 7
Making the Most of Modern PHP in Drupal 7Ryan Szrama
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First MileGourab Mitra
 
Building a Better Mousetrap for the Cloud
Building a Better Mousetrap for the CloudBuilding a Better Mousetrap for the Cloud
Building a Better Mousetrap for the Cloudelliando dias
 

Similaire à Top ten of PHP 7.4 (20)

Modern Frontend Technology
Modern Frontend TechnologyModern Frontend Technology
Modern Frontend Technology
 
Workin ontherailsroad
Workin ontherailsroadWorkin ontherailsroad
Workin ontherailsroad
 
WorkinOnTheRailsRoad
WorkinOnTheRailsRoadWorkinOnTheRailsRoad
WorkinOnTheRailsRoad
 
Object Oriented Programming with Laravel - Session 2
Object Oriented Programming with Laravel - Session 2Object Oriented Programming with Laravel - Session 2
Object Oriented Programming with Laravel - Session 2
 
reactive_programming_for_java_developers.pdf
reactive_programming_for_java_developers.pdfreactive_programming_for_java_developers.pdf
reactive_programming_for_java_developers.pdf
 
PHP 7X New Features
PHP 7X New FeaturesPHP 7X New Features
PHP 7X New Features
 
Cakephp vs. laravel
Cakephp vs. laravelCakephp vs. laravel
Cakephp vs. laravel
 
Php Tutorial
Php TutorialPhp Tutorial
Php Tutorial
 
High Availability for OpenStack
High Availability for OpenStackHigh Availability for OpenStack
High Availability for OpenStack
 
Php 5.6 vs Php 7 performance comparison
Php 5.6 vs Php 7 performance comparisonPhp 5.6 vs Php 7 performance comparison
Php 5.6 vs Php 7 performance comparison
 
Laravel, beyond the framework
Laravel, beyond the frameworkLaravel, beyond the framework
Laravel, beyond the framework
 
Laravel vs ASP.NET Framework .pdf
Laravel vs ASP.NET Framework .pdfLaravel vs ASP.NET Framework .pdf
Laravel vs ASP.NET Framework .pdf
 
Php 7 - YNS
Php 7 - YNSPhp 7 - YNS
Php 7 - YNS
 
Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web Framework
 
RESTful Services
RESTful ServicesRESTful Services
RESTful Services
 
Chapter 9 & chapter 10 solutions
Chapter 9 & chapter 10 solutionsChapter 9 & chapter 10 solutions
Chapter 9 & chapter 10 solutions
 
Making the Most of Modern PHP in Drupal 7
Making the Most of Modern PHP in Drupal 7Making the Most of Modern PHP in Drupal 7
Making the Most of Modern PHP in Drupal 7
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
Building a Better Mousetrap for the Cloud
Building a Better Mousetrap for the CloudBuilding a Better Mousetrap for the Cloud
Building a Better Mousetrap for the Cloud
 
Why Laravel?
Why Laravel?Why Laravel?
Why Laravel?
 

Dernier

VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Roomdivyansh0kumar0
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsstephieert
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 

Dernier (20)

VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With RoomVIP Kolkata Call Girl Dum Dum 👉 8250192130  Available With Room
VIP Kolkata Call Girl Dum Dum 👉 8250192130 Available With Room
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 

Top ten of PHP 7.4

  • 1. Top ten of php 7.4 Andrea Giannantonio Team Leader in Immobiliare.it @JellyBellyDev
  • 2. RELEASE DATE PHP 7.4 •Alpha1 - 13 Jun 2019 •Beta1 - 25 Jul 2019 •RC1 - 5 Sep 2019 •RC2 - 19 Sep 2019 •RC3 - 03 Oct 2019 •RC4 - 18 Oct 2019 •RC5 - 31 Oct 2019 •RC6 - 14 Nov 2019 •7.4.0 - 28 Nov 2019 (GA) •7.4.1 - 18 Dec 2019 (GA) •7.4.2 - 23 Jan 2020 (GA)
  • 3. TOP TEN •Typed Properties •Arrow Functions •Null Coalescing Assignment Operator •Spread Operator in Array •Foreign Function Interface •Weak References •Covariant Returns and Contravariant Parameters •Preloading •Deprecate left-associative ternary operator •Performance of PHP 7.4
  • 5. PARAM AND RETURN TYPES: PHP 7.1
  • 6. Allowed: bool, int, float, string, array, object, iterable, self, parent, any class or interface name, and nullable types (?type) Not Allowed: void and callable TYPED PROPERTIES: PHP 7.4
  • 9. TYPED PROPERTIES: INVARIANT Property types (public and protected) are invariant
  • 13. ARROW FUNCTIONS Syntax: fn(parameter_list) => expr Note: fn is a reserved word in PHP 7.4
  • 15. SPREAD OPERATOR Note that this only works with arrays with numerical keys.
  • 16. SPREAD OPERATOR It also works on Traversable objects
  • 18. NULL COALESCING ASSIGNMENT OPERATOR Note that, while the coalesce operator `??` is a comparison operator, `??=` is an assignment operator.
  • 20. FOREIGN FUNCTION INTERFACE •Enables the execution of C code directly from PHP •Provides a FFI class to manage the bridge between C and PHP •A C function can be executed as a PHP method of FFI class •php.ini: `ffi.enable=false`
  • 23. FFI: PHP TENSORFLOW Dmitry Stogov has developed an experimental binding of TensorFlow library in PHP using FFI: dstogov/php-tensorflow
  • 25. WEAK REFERENCES Weak References allow the programmer to retain a reference to an object which does not prevent the object from being destroyed; They are useful for implementing cache like structures. 
  • 26. SEVEN Covariant Returns and Contravariant Parameters
  • 27. COVARIANT RETURNS AND CONTRAVARIANT PARAMETERS Variance is a property of class hierarchies describing how the types of a type constructor affect subtypes. •Invariant: if the type of the super-type constrain the type of the subtype. •Covariant: if the ordering of types is preserved (types are ordered from more specific to more generic). •Contravariant: if it reverses the order (types are ordered from more generic to more specific). Currently, PHP has mostly invariant parameter and return types, with few exceptions. This RFC proposes to allow covariance and contravariance on parameter types and return types. In general, a type constructor can be:
  • 32. PRELOADING "On server startup – before any application code is run – we may load a certain set of PHP files into memory – and make their contents “permanently available” to all subsequent requests that will be served by that server. All the functions and classes defined in these files will be available to requests out of the box, exactly like internal entities." Dmitry Stogov
  • 33. PRELOADING • Preloading is controlled by a specific php.ini directive: opcache.preload • This directive specifies a PHP script to be compiled and executed at server start-up • Each file to cache, should be added in this script using opcache_compile_file()
  • 34. PRELOADING: COMPOSITION opcache.preload=“/tmp/preload.php” OPCache Preloading in Symfony opcache.preload=/path/to/project/var/cache/prod/App_KernelProdContainer.preload.php
  • 35. PRELOADING: BENCHMARKS • Preloading disabled • Naive preloading - all Laravel and application code I found this benchmark by stitcher.io on Laravel project • Preloading Optimised - dumped all classes used by `get_declared_classes()` Scenarios:
  • 36. PRELOADING: BENCHMARKS Requests per second Time per request That's around a 25% performance gain compared to not using preloading, and an 8% gain compared to using the naive approach.
  • 37. PRELOADING: CONS • Restart the web server to update opcache.preload • Not compatible with host running multiple applications, or multiple versions of applications
  • 39. DEPRECATE LEFT-ASSOCIATIVE TERNARY OPERATOR Unlike most other languages, the ternary operator in PHP is left-associative rather than right-associative. Not only being uncommon, it is also confusing for programmers who switch between different languages. PHP 7.4 proposes to remove the left-associativity and requires the use of parentheses instead. • Starting from PHP 7.4, nested ternaries without explicit use of parentheses will throw a deprecation warning. • Starting from PHP 8.0, there will be a compile runtime error.
  • 41. PERFORMANCE OF PHP 7.4 • He compared the execution time of PHP7.4RC1 with PHP 7.1, 7.2 and 7.3 • He used Zendbench.php script as benchmark I found this benchmark on PHP 7.X by Enrico Zimuel • He took the total execution time • Full experiment report here
  • 42. PERFORMANCE OF PHP 7.4: RESULTS PHP ver. Exec. time (in sec) 7.1.32 455 7.2.22 437 7.3.9 373 7.4RC1 334
  • 43. PERFORMANCE OF PHP 7.4: RESULTS PHP 7.4 IS THE FASTEST! • 7.4RC1 is 26% faster than 7.1.32 • 7.4RC1 is 22% faster than 7.2.22 • 7.4RC1 is 10% faster than 7.3.9
  • 44. LET’S GO CODING IN PHP 7.4
  • 45. Thanks for the attention Andrea Giannantonio @JellyBellyDev
  • 46. REFERENCES • https://www.php.net • https://wiki.php.net/rfc#php_74 • https://www.zimuel.it/slides/pugtorino/php74#/ • https://www.zimuel.it/blog/benchmarking_PHP74 • https://medium.com/@daniel.dan/whats-new-in-php-7-4-top-10-features-that-you-need-to-know-e0acc3191f0a • https://kinsta.com/blog/php-7-4/ • https://stitcher.io/blog/new-in-php-74 • https://stitcher.io/blog/php-preload-benchmarks • https://support.cloud.engineyard.com/hc/en-us/articles/205411888-PHP-Performance-I-Everything-You-Need-to- Know-About-OpCode-Caches • https://carbon.now.sh/