SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
nAcademy  Le 26 février 2015 Neuros ­ 
PHP 7
 
Think php7  
Christophe Villeneuve
nAcademy  Le 26 février 2015 Neuros ­ 
Aujourd'hui...
● Situation actuelle
● Le futur
● PHP 7
Thank's Rasmus Lerdorf
2015 
20 ans PHP
nAcademy  Le 26 février 2015 Neuros ­ 
Qui... est Christophe Villeneuve ?
<<
nAcademy  Le 26 février 2015 Neuros ­ 
Situation actuelle
Picture hellosct1 : Pyramide elePHPant
nAcademy  Le 26 février 2015 Neuros ­ 
➢
PHP 5.2 ✔
 The END 2010
PHP (1/6)
nAcademy  Le 26 février 2015 Neuros ­ 
➢PHP 5.2
➢PHP 5.3
✔ De 2009 à Août 2014
✔ ChangeLog
✔ Namespace
✔ Etc.
PHP (2/6)
nAcademy  Le 26 février 2015 Neuros ­ 
➢PHP 5.2
➢PHP 5.3
➢PHP 5.4
✔Dispo Mars 2012 
✔ChangeLog
✔ Les traits
✔ Etc.
PHP (3/6)
nAcademy  Le 26 février 2015 Neuros ­ 
➢PHP 5.2
➢PHP 5.3
➢PHP 5.4
➢PHP 5.5
✔ Dispo juin 2013
✔ ChangeLog
✔ Générators
✔ OpCache
✔ Principalement la sécurité
PHP (4/6)
nAcademy  Le 26 février 2015 Neuros ­ 
➢PHP 6.0
✔ No Comment
Screen Hidden
nAcademy  Le 26 février 2015 Neuros ­ 
➢PHP 5.2
➢PHP 5.3
➢PHP 5.4
➢PHP 5.5
➢PHP 5.6
✔ Dispo Août 2014 
✔ Variadics
✔ Function fn ($id,$params);
✔ Splat Operator
✔ Function test (arg1, arg2=null)
✔ Operator
✔ echo 2 xx 3 ; // 8
✔ Nice speed bump 
✔ Etc.
PHP (5/6)
nAcademy  Le 26 février 2015 Neuros ­ 
➢PHP 5.2
➢PHP 5.3
➢PHP 5.4
➢PHP 5.5
➢PHP 5.6
✔ Dispo Septembre 2015
✔ Next changeLog
✔ ...
➢PHP 5.7
PHP (6/6)
nAcademy  Le 26 février 2015 Neuros ­ 
+ =
5 + 1 = 7
nAcademy  Le 26 février 2015 Neuros ­ 
PHP Alternative Implementations
Source : https://wiki.php.net/rfc/php7_57_roadmap
●
PHP 7
– PHP Next Generation (PHPNG)
●
HHVM
– Code natif
●
Recki­ct
– Code natif
●
Phalanger
– .net engine
nAcademy  Le 26 février 2015 Neuros ­ 
Roadmap
Source : https://wiki.php.net/rfc/php7_57_roadmap
nAcademy  Le 26 février 2015 Neuros ­ 
Les changements
? yes
A whale
(Une baleine)
Picture hellosct1 : Tadoussac 2011 – elePHPant VS whale
nAcademy  Le 26 février 2015 Neuros ­ 
Features
● :­D
– PHP Next Generation
– Modification structure 
données
– Nouvelle gestion de 
mémoire
– Etc
● :­( 
– Ext/MySQL
– Ext/ereg
– ASP Style Tags
<% ou <%= et %>
– Etc.
:­( Source : https://wiki.php.net/rfc/remove_deprecated_functionality_in_php7
nAcademy  Le 26 février 2015 Neuros ­ 
●
Structure intermédiaire dans le process de compilation
 → gain de performance et au niveau mémoire
●
Améliore la qualité du code
●
Position avant OpCode
<?php
//aucun
Source : https://wiki.php.net/rfc/abstract_syntax_tree
Abstract syntax tree
nAcademy  Le 26 février 2015 Neuros ­ 
Null Coalesce Operator
● Modifie le comportement de l'opérateur ?
 → fonction isset() en automatique
● Disponible 
– Dans une chaîne 
– Dans un appel de méthode / fonction
<?php
//Avant
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
//PHP 7.0
$username = $_GET['user'] ?? 'nobody';
Source : https://wiki.php.net/rfc/isset_ternary
nAcademy  Le 26 février 2015 Neuros ­ 
Unicode Codepoint Escape Syntax
● Utilisation de séquences Unicode dans les chaînes 
de caractères
● { et }   code de caractères ←
lisibilité + pas de limite au nombre de caractères
Source : https://wiki.php.net/rfc/unicode_escape
<?php
echo "u{202E}Reversed text"; // outputs Reversed text
echo "mau{00F1}ana"; // pre-composed character ñ
echo "manu{0303}ana"; // "n" with combining ~ character (U+0303)
nAcademy  Le 26 février 2015 Neuros ­ 
Introduce session_start()
● Ajout d'une option
● Lecture seule 
– Un moyen rapide de lire les données de la session lorsque la mise à jour n'est 
pas nécessaire
● Ecriture en option
– Les données ne sont pas écrites si elles sont identiques
Source : https://wiki.php.net/rfc/session-lock-ini
<?php
session_start(array('lazy_write'=False));
nAcademy  Le 26 février 2015 Neuros ­ 
Catchable 
● 'call to a member function of a non­object'
● Pour éviter d'obtenir une erreur non­fatale
– E_RECOVERABLE_ERROR 
● Cela se produit à chaque fois qu'une méthode est appelée 
sur autre chose qu'un objet
Source : https://wiki.php.net/rfc/catchable-call-to-member-of-non-object
<?php set_error_handler(function($code,$message) {
var_dump($code, $message);
});
$x= null;
var_dump($x->method());
echo "Aliven";
nAcademy  Le 26 février 2015 Neuros ­ 
Uniform variable Syntax
● Uniformisation de la Syntax variable
● But : Atteindre la sémantique pour certaines 
constructions variables
Source : https://wiki.php.net/rfc/uniform_variable_syntax
// old // new
$$foo['bar']['baz'] ${$foo['bar']['baz']} ($$foo)['bar']['baz']
$foo->$bar['baz'] $foo->{$bar['baz']} ($foo->$bar)['baz']
$foo->$bar['baz']() $foo->{$bar['baz']}() ($foo->$bar)['baz']()
Foo::$bar['baz']() Foo::{$bar['baz']}() (Foo::$bar)['baz']()
nAcademy  Le 26 février 2015 Neuros ­ 
Return Type Declarations
● Possibilité de spécifier un type de retour 
 → pour les fonctions et méthodes
Source : https://wiki.php.net/rfc/return_types
<?php
// retourne toujours un tableau
function foo(): array {
return [];
}
nAcademy  Le 26 février 2015 Neuros ­ 
Named parameters
● Nommés les paramètres
● Exemple
// Remplit un tableau avec une même valeur
array_fill(start, num, value)
Source : https://wiki.php.net/rfc/named_params
<?php
// Actuellement
array_fill(0, 100, 42);
// Possibilité
array_fill(start_index => 0, num => 100, value => 42);
// ou
array_fill(value => 42, num => 100, start_index => 0);
nAcademy  Le 26 février 2015 Neuros ­ 
Et...
● Beaucoup d'autres…. RFC…. pour PHP 7.0
https://wiki.php.net/rfc#php_70
Picture PHPather Spirituel : Vincent Pontier aka EL Roubio
nAcademy  Le 26 février 2015 Neuros ­ 
Features en cours (Votes/Discussions)
● Exceptions in the engine (for PHP 7)
– Permettre la levée d'exceptions depuis le moteur de PHP
● Remove PHP 4 Constructors
– Liés aux constructeurs. Depuis php5  __construct()→
● Expectations
– Identifier les problèmes en Dev ( basé sur assert() )
● Array to string conversion
– Convertir un Array en String
nAcademy  Le 26 février 2015 Neuros ­ 
Performance
Picture EL Roubio – http://www.elroubio.net
nAcademy  Le 26 février 2015 Neuros ­ 
Configuration
● VM Debian 7 1GB RAM, 1 core, SSD
ulabox.com symfony 2 index / product page
PHP 5.5 / 5.6 / 7.0
opcache.validate_timestamps = 0
opcache.enable_file_override = 1
HHVM 3.5
Hhvm.server_stat_cache = 1
No extensions! (APCu)
Nginx, Redis, Solr, MySQL
Source 31/01/2015 : https://speakerdeck.com/acasademont/php7­at­php­day­spain­2015
nAcademy  Le 26 février 2015 Neuros ­ 
Résultat
Réalisation 31/01/2015 ­ Source : https://speakerdeck.com/acasademont/php7­at­php­day­spain­2015
nAcademy  Le 26 février 2015 Neuros ­ 
Merci
Questions ?
@hellosct1
@neuro_paris
Sources 
­ Pierre Joye
­ Albert Casademont
­ Internals rfc
Adoption
http://www.elephant­php.com
Except the human PHPather

Contenu connexe

En vedette

The promise of asynchronous PHP
The promise of asynchronous PHPThe promise of asynchronous PHP
The promise of asynchronous PHPWim Godden
 
Creating HTML Pages
Creating HTML PagesCreating HTML Pages
Creating HTML PagesMike Crabb
 
Top Insights from SaaStr by Leading Enterprise Software Experts
Top Insights from SaaStr by Leading Enterprise Software ExpertsTop Insights from SaaStr by Leading Enterprise Software Experts
Top Insights from SaaStr by Leading Enterprise Software ExpertsOpenView
 
Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and PracticesAnand Bagmar
 
Portfolio 2010 - Web
Portfolio 2010 - WebPortfolio 2010 - Web
Portfolio 2010 - Weblilcreative
 
Los despidos colectivos (pactados) en entidades bancarias llegan al TS, que d...
Los despidos colectivos (pactados) en entidades bancarias llegan al TS, que d...Los despidos colectivos (pactados) en entidades bancarias llegan al TS, que d...
Los despidos colectivos (pactados) en entidades bancarias llegan al TS, que d...Universidad Autónoma de Barcelona
 
Devis d'évaluation, Auberge du coeur Heberg'Ados
Devis d'évaluation, Auberge du coeur Heberg'AdosDevis d'évaluation, Auberge du coeur Heberg'Ados
Devis d'évaluation, Auberge du coeur Heberg'AdosRaïmi Osseni
 
Les pensées de Neale Donald Walsch (auteur de Conversations Avec Dieu) en dia...
Les pensées de Neale Donald Walsch (auteur de Conversations Avec Dieu) en dia...Les pensées de Neale Donald Walsch (auteur de Conversations Avec Dieu) en dia...
Les pensées de Neale Donald Walsch (auteur de Conversations Avec Dieu) en dia...jppol
 
Comment fabriquer de nouvelles robes
Comment fabriquer de nouvelles robesComment fabriquer de nouvelles robes
Comment fabriquer de nouvelles robestheperfectmiss
 
Web Analytics classement CybereStat
Web Analytics classement CybereStatWeb Analytics classement CybereStat
Web Analytics classement CybereStatXjarrin
 
Baobaz SES - La semaine sociale 050312
Baobaz SES - La semaine sociale 050312Baobaz SES - La semaine sociale 050312
Baobaz SES - La semaine sociale 050312armstrong
 

En vedette (20)

Continuous Quality Assurance
Continuous Quality AssuranceContinuous Quality Assurance
Continuous Quality Assurance
 
PHP7 e Rich Domain Model
PHP7 e Rich Domain ModelPHP7 e Rich Domain Model
PHP7 e Rich Domain Model
 
PHP7: Hello World!
PHP7: Hello World!PHP7: Hello World!
PHP7: Hello World!
 
The promise of asynchronous PHP
The promise of asynchronous PHPThe promise of asynchronous PHP
The promise of asynchronous PHP
 
Migrating to php7
Migrating to php7Migrating to php7
Migrating to php7
 
PHP7 is coming
PHP7 is comingPHP7 is coming
PHP7 is coming
 
reveal.js 3.0.0
reveal.js 3.0.0reveal.js 3.0.0
reveal.js 3.0.0
 
Creating HTML Pages
Creating HTML PagesCreating HTML Pages
Creating HTML Pages
 
Top Insights from SaaStr by Leading Enterprise Software Experts
Top Insights from SaaStr by Leading Enterprise Software ExpertsTop Insights from SaaStr by Leading Enterprise Software Experts
Top Insights from SaaStr by Leading Enterprise Software Experts
 
Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and Practices
 
Portfolio 2010 - Web
Portfolio 2010 - WebPortfolio 2010 - Web
Portfolio 2010 - Web
 
Los despidos colectivos (pactados) en entidades bancarias llegan al TS, que d...
Los despidos colectivos (pactados) en entidades bancarias llegan al TS, que d...Los despidos colectivos (pactados) en entidades bancarias llegan al TS, que d...
Los despidos colectivos (pactados) en entidades bancarias llegan al TS, que d...
 
Édes álmodók
Édes álmodókÉdes álmodók
Édes álmodók
 
Devis d'évaluation, Auberge du coeur Heberg'Ados
Devis d'évaluation, Auberge du coeur Heberg'AdosDevis d'évaluation, Auberge du coeur Heberg'Ados
Devis d'évaluation, Auberge du coeur Heberg'Ados
 
Les pensées de Neale Donald Walsch (auteur de Conversations Avec Dieu) en dia...
Les pensées de Neale Donald Walsch (auteur de Conversations Avec Dieu) en dia...Les pensées de Neale Donald Walsch (auteur de Conversations Avec Dieu) en dia...
Les pensées de Neale Donald Walsch (auteur de Conversations Avec Dieu) en dia...
 
Comment fabriquer de nouvelles robes
Comment fabriquer de nouvelles robesComment fabriquer de nouvelles robes
Comment fabriquer de nouvelles robes
 
Homme que fais_tu_
Homme que fais_tu_Homme que fais_tu_
Homme que fais_tu_
 
Web Analytics classement CybereStat
Web Analytics classement CybereStatWeb Analytics classement CybereStat
Web Analytics classement CybereStat
 
Presentaciones exitosas
Presentaciones exitosasPresentaciones exitosas
Presentaciones exitosas
 
Baobaz SES - La semaine sociale 050312
Baobaz SES - La semaine sociale 050312Baobaz SES - La semaine sociale 050312
Baobaz SES - La semaine sociale 050312
 

Similaire à PHP 7 - Think php7

Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7neuros
 
Introduction à PHP - Forum PHP 2010 - AFUP
Introduction à PHP - Forum PHP 2010 - AFUPIntroduction à PHP - Forum PHP 2010 - AFUP
Introduction à PHP - Forum PHP 2010 - AFUPNicolas Silberman
 
Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPPascal MARTIN
 
Keynote de cloture du forum PHP 2013
Keynote de cloture du forum PHP 2013Keynote de cloture du forum PHP 2013
Keynote de cloture du forum PHP 2013Olivier Mansour
 
Cours PHP 1/4 - Pierre Rudloff
Cours PHP 1/4 - Pierre RudloffCours PHP 1/4 - Pierre Rudloff
Cours PHP 1/4 - Pierre RudloffStrasWeb
 
l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectFlorent DENIS
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continuneuros
 
PostgreSQL plprofiler - Mars 2017 - Loxodata
PostgreSQL  plprofiler - Mars 2017 - LoxodataPostgreSQL  plprofiler - Mars 2017 - Loxodata
PostgreSQL plprofiler - Mars 2017 - Loxodataslardiere
 
Keynote d'ouverture du forum PHP 2013
Keynote d'ouverture du forum PHP 2013Keynote d'ouverture du forum PHP 2013
Keynote d'ouverture du forum PHP 2013Olivier Mansour
 
Automatisation des gestionnaires de contenus (CMS)
Automatisation des gestionnaires de contenus (CMS)Automatisation des gestionnaires de contenus (CMS)
Automatisation des gestionnaires de contenus (CMS)Christophe Villeneuve
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6Microsoft
 

Similaire à PHP 7 - Think php7 (13)

Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7
 
Introduction à PHP - Forum PHP 2010 - AFUP
Introduction à PHP - Forum PHP 2010 - AFUPIntroduction à PHP - Forum PHP 2010 - AFUP
Introduction à PHP - Forum PHP 2010 - AFUP
 
PHP5: Endgame
PHP5: EndgamePHP5: Endgame
PHP5: Endgame
 
Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHP
 
Keynote de cloture du forum PHP 2013
Keynote de cloture du forum PHP 2013Keynote de cloture du forum PHP 2013
Keynote de cloture du forum PHP 2013
 
Cours PHP 1/4 - Pierre Rudloff
Cours PHP 1/4 - Pierre RudloffCours PHP 1/4 - Pierre Rudloff
Cours PHP 1/4 - Pierre Rudloff
 
Cours PHP 1
Cours PHP 1Cours PHP 1
Cours PHP 1
 
l'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnectl'Industrialisation (avec PHP) @MMIConnect
l'Industrialisation (avec PHP) @MMIConnect
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continu
 
PostgreSQL plprofiler - Mars 2017 - Loxodata
PostgreSQL  plprofiler - Mars 2017 - LoxodataPostgreSQL  plprofiler - Mars 2017 - Loxodata
PostgreSQL plprofiler - Mars 2017 - Loxodata
 
Keynote d'ouverture du forum PHP 2013
Keynote d'ouverture du forum PHP 2013Keynote d'ouverture du forum PHP 2013
Keynote d'ouverture du forum PHP 2013
 
Automatisation des gestionnaires de contenus (CMS)
Automatisation des gestionnaires de contenus (CMS)Automatisation des gestionnaires de contenus (CMS)
Automatisation des gestionnaires de contenus (CMS)
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
 

Plus de Christophe Villeneuve

La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxChristophe Villeneuve
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webChristophe Villeneuve
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteChristophe Villeneuve
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Christophe Villeneuve
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le designChristophe Villeneuve
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activitesChristophe Villeneuve
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftChristophe Villeneuve
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthnChristophe Villeneuve
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueChristophe Villeneuve
 

Plus de Christophe Villeneuve (20)

MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans Firefox
 
pister les pisteurs
pister les pisteurspister les pisteurs
pister les pisteurs
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le web
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Mariadb une base de données NewSQL
Mariadb une base de données NewSQLMariadb une base de données NewSQL
Mariadb une base de données NewSQL
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnante
 
Pentest bus pirate
Pentest bus piratePentest bus pirate
Pentest bus pirate
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le design
 
Foxfooding semaine 3
Foxfooding semaine 3Foxfooding semaine 3
Foxfooding semaine 3
 
Foxfooding
FoxfoodingFoxfooding
Foxfooding
 
Accessibilite web wcag rgaa
Accessibilite web wcag rgaaAccessibilite web wcag rgaa
Accessibilite web wcag rgaa
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activites
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et Microsoft
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
Send large files with addons
Send large files with addonsSend large files with addons
Send large files with addons
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratique
 
Donnez la voix aux machines
Donnez la voix aux machinesDonnez la voix aux machines
Donnez la voix aux machines
 

PHP 7 - Think php7