SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
PHP 6,
la prochaine frontière


     NEXEN - ALTER WAY GROUP   1
Qui parle?
               Damien Seguy
               Architecte Open
                Source
               Audits sécurité et
                performances
               Eleveur d'éléPHPants


         NEXEN - ALTER WAY GROUP
PHP 6, déjà?

 Lancé en 2006
 PHP 6 déjà disponible
   snaps.php.net
 Compilable
   Loin d'être fini




              NEXEN - ALTER WAY GROUP
Nouveautés

                               Nettoyages
                               Ajouts
                                 Unicode
                                 Unicode
                                 Unicode
                                 Unicode

                               Améliorations
                               Conservation
                               Ce qui change
        NEXEN - ALTER WAY GROUP
Nettoyages

 ncurses
 ereg
 mime_magic
    remplacée par fileinfo
 fonction dl() (par défaut)
 Sortis de la distributions
    Rangé dans PECL
               NEXEN - ALTER WAY GROUP
Nettoyages

 register_globals
 safe_mode
 magic_quotes
 ze1_compatibility
 register_long_variables
 break le dynamique

              NEXEN - ALTER WAY GROUP
Ajouts

 file_info
    Vérifier les types de fichiers
 mysqlnd
    MySQL Native Driver
 hash
    Pour les sessions
 apc ? pas encore...
                NEXEN - ALTER WAY GROUP
Ajouts
                  <?php
                  $i = 1;
 Goto            Label:
   On aime       print quot;$i: oknquot;; $i++; 
                  if ($i <= 10) goto Label;
   ou pas
                  for($i = 0; $i < 10; $i++) 
                  {
                     print quot;$i: oknquot;;
                  }
                  ?>


              NEXEN - ALTER WAY GROUP
Nouvelles fonctions

 char_*
 collator_*
 gc_*                            strtotitle
 locale_*                        var_inspect
 mhash_*                         str_getcsv
 unicode_*

               NEXEN - ALTER WAY GROUP
Unicode

 Gérer les langues
 Basé sur ICU
  de IBM
 unicode.semantics
 Andrei Zmeivski et
  Sara Golemon

              NEXEN - ALTER WAY GROUP
Unicode

 Conversions
 Dans le code PHP
 Dans les tris
 Dans les chaînes
 Dans les manipulations
 Dans les locales

             NEXEN - ALTER WAY GROUP
Je ne suis pas un octet!

  Un caractère n'est pas un octet
       $francais = quot;Bonjour le mondequot;;
       echo strlen($francais);
       // 16 caractères

       $chinois = quot;                   quot;;
       echo strlen($chinois);
       // 5 caractères
       echo strlen((binary) $chinois);
       // 15 caractères


                 NEXEN - ALTER WAY GROUP
Les identifiants
        class français {
          function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {}
          function வாேகனச      {}
          function འབྲུག་ཡུལ།  {}
        }
        $déjà = new français();
        echo $déjà->வாேகனச;




          NEXEN - ALTER WAY GROUP
Les identifiants
        class français {
          function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit
          function வாேகனச      {}
          function འབྲུག་ཡུལ།  {}
        }
        $déjà = new français();
        echo $déjà->வாேகனச;




          NEXEN - ALTER WAY GROUP
Les identifiants
        class français {
          function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit
          function வாேகனச      {} Tamoul
          function འབྲུག་ཡུལ།  {}
        }
        $déjà = new français();
        echo $déjà->வாேகனச;




          NEXEN - ALTER WAY GROUP
Les identifiants
        class français {
          function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit
          function வாேகனச      {} Tamoul
          function འབྲུག་ཡུལ།  {} Tibétain
        }
        $déjà = new français();
        echo $déjà->வாேகனச;




          NEXEN - ALTER WAY GROUP
À la pelle

  500+ encodages
  230 locales (formats et fuseaux)
  Expressions rationnelles
  Translitération
  Découpage de mots
  Accès en écritures aux caractères

               NEXEN - ALTER WAY GROUP
Offset de chaînes

  On peut accéder aux caractères en
   lecture et écriture
  Les [] sont        $pays = quot;    quot;;

   recommandés echo $pays[0];
                      // result is
  Les {} sont        $pays[0] = ' ';
   obsolètes          // $pays vaut



               NEXEN - ALTER WAY GROUP
Utilitaires texte
$text = quot;Les mots ne sont séparés que par des espaces? non!quot;;
foreach (new TextIterator($text, TextIterator::WORD) as $u) {
if ($u != quot; quot;) echo($u),quot;nquot;;
}                                                       Les
                                                        mots
                                                        ne
   Découpages intelligents                             sont
     Octets                                            séparés
                                                        que
     Caractères                                        par
                                                        des
     Mots                                              espaces
                                                        ?
     Phrases entières                                  non
                                                        !
                          NEXEN - ALTER WAY GROUP
Translitération
$noms = quot;
  ,                                       Gim, Gugsam
  ,                                       Gim, Myeonghyi
     ,                                    Takeda, Masayuki
                                          Oohara, Manabu
      ,                                   Gorbačev, Mihail
Горбачев, Михаил                          Kozyrev, Andrej
Козырев, Андрей                           Kaphetzópoulos,
Καφετζόπουλος, Θεόφιλος                   Theóphilos
Θεοδωράτου, Ελένηquot;;                       Theodōrátou, Elénē
$r = strtotitle(
str_transliterate($noms, quot;Anyquot;, quot;Latinquot;));
                NEXEN - ALTER WAY GROUP
Séquences
 Caractères
     uXXXX
     UXXXXXX
     C{LATIN CAPITAL LETTER C WITH
      CIRCUMFLEX}
 Transtypage
   (unicode)
   (binary)


                  NEXEN - ALTER WAY GROUP
Entrée / sortie

  Encodage de script
  Encodage de fichiers
  Encodage d'exécution
  Encodage HTTP d'entrée
  Encodage HTTP de sortie
  Traitement spécifique aux flux

               NEXEN - ALTER WAY GROUP
Améliorations

 __autoload() est retirée de
  situations limites (is_a(), catch)
 output_buffering : réécriture totale
 Lazy coding des auto-globales
    Créées à la demande




               NEXEN - ALTER WAY GROUP
Conservations

 mbstring, ctype
   Vont disparaître
 mysql
   mysqli, pdo, pdo2... =
 Pas de débogueur intégré


             NEXEN - ALTER WAY GROUP
Conservations

 Les fonctions et leur nom
    Pas de standardisation forcée
 Les identifiants sont toujours
  insensibles à la casse
    Il existe un patch...
 Support de finally
 Héritage multiple
              NEXEN - ALTER WAY GROUP
Ce qui change
macadams:~/bin/php6.0-200801221530/sapi/cli macbook$ ./php
PHP Warning: Directive 'register_globals' is no longer supported
in PHP 6 and greater in Unknown on line 0

PHP 6.0.0-dev (cli) (built: Jan 22 2008 12:45:43)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2008 Zend Technologies


     PHP        Ext         Poids                   Mémoire
     4.4.8      43          8 Mo                    13 ko
     5.3.0      65          24 Mo                   50 ko
     6.0.0      43          19 Mo                   53 ko

                          NEXEN - ALTER WAY GROUP
Performances?
               PHP 4              PHP 5                     PHP 6

6,7300


5,0475


3,3650


1,6825


    0
         add           concat                      append           md5

                         NEXEN - ALTER WAY GROUP
Où en est-on?

 Ça compile
 62 % des fonctions PHP ont été
  revues
 PHP 5.3 doit sortir avant
    La version de transition
 16 sites dans le monde l'ont
  adopté...
             NEXEN - ALTER WAY GROUP
Questions?




 http://www.alterway.fr/
 damien.seguy@nexen.net
 http://www.nexen.net/conferences.php
               NEXEN - ALTER WAY GROUP

Contenu connexe

En vedette

Definiciones de Salud
Definiciones de SaludDefiniciones de Salud
Definiciones de SaludGladys62
 
I dea power clase seis
I dea power clase seisI dea power clase seis
I dea power clase seisValu Jara
 
Ponencia “Cap. 26000, una herramienta de autoevaluación”. José Manuel Sánchez...
Ponencia “Cap. 26000, una herramienta de autoevaluación”. José Manuel Sánchez...Ponencia “Cap. 26000, una herramienta de autoevaluación”. José Manuel Sánchez...
Ponencia “Cap. 26000, una herramienta de autoevaluación”. José Manuel Sánchez...ANEPMA
 
Cuadro elisandro (1)
Cuadro elisandro (1)Cuadro elisandro (1)
Cuadro elisandro (1)elisandro23
 
Gestion de-qualité
Gestion de-qualitéGestion de-qualité
Gestion de-qualitéAymane Touil
 
Café Bd et manga
Café Bd et mangaCafé Bd et manga
Café Bd et manga31nathalie
 
Grupo de Trabajo "Datos económicos básicos asociados ANEPMA, indicadores y pa...
Grupo de Trabajo "Datos económicos básicos asociados ANEPMA, indicadores y pa...Grupo de Trabajo "Datos económicos básicos asociados ANEPMA, indicadores y pa...
Grupo de Trabajo "Datos económicos básicos asociados ANEPMA, indicadores y pa...ANEPMA
 
Ondernemen frankrijk
Ondernemen frankrijkOndernemen frankrijk
Ondernemen frankrijkondernemen
 
Learning Expedition à New York, Community Management & E-Reputation
Learning Expedition à New York, Community Management & E-Reputation Learning Expedition à New York, Community Management & E-Reputation
Learning Expedition à New York, Community Management & E-Reputation L'Atelier BNP Paribas
 
rapport cours projet - overview
rapport cours projet - overviewrapport cours projet - overview
rapport cours projet - overviewJeanne Helluy
 
Grupo de Trabajo: Responsabilidad Social y Sostenibilidad en ANEPMA
Grupo de Trabajo: Responsabilidad Social y Sostenibilidad en ANEPMAGrupo de Trabajo: Responsabilidad Social y Sostenibilidad en ANEPMA
Grupo de Trabajo: Responsabilidad Social y Sostenibilidad en ANEPMAANEPMA
 
Guia de orientacian_entrevista_mayoritaria
Guia de orientacian_entrevista_mayoritariaGuia de orientacian_entrevista_mayoritaria
Guia de orientacian_entrevista_mayoritariaAlejo Restrepo Correa
 
La Caverne du Pont d'Arc, un an après
La Caverne du Pont d'Arc, un an aprèsLa Caverne du Pont d'Arc, un an après
La Caverne du Pont d'Arc, un an aprèsCCI Ardèche
 
Printemps de l'innovation 2015 - Académie de Lyon
Printemps de l'innovation 2015 - Académie de LyonPrintemps de l'innovation 2015 - Académie de Lyon
Printemps de l'innovation 2015 - Académie de LyonDFIE Lyon
 

En vedette (20)

Passion Photo
Passion PhotoPassion Photo
Passion Photo
 
Daily
DailyDaily
Daily
 
Proyecto
ProyectoProyecto
Proyecto
 
Definiciones de Salud
Definiciones de SaludDefiniciones de Salud
Definiciones de Salud
 
I dea power clase seis
I dea power clase seisI dea power clase seis
I dea power clase seis
 
Ponencia “Cap. 26000, una herramienta de autoevaluación”. José Manuel Sánchez...
Ponencia “Cap. 26000, una herramienta de autoevaluación”. José Manuel Sánchez...Ponencia “Cap. 26000, una herramienta de autoevaluación”. José Manuel Sánchez...
Ponencia “Cap. 26000, una herramienta de autoevaluación”. José Manuel Sánchez...
 
Guide pratique du crowdfunding immobilier
Guide pratique du crowdfunding immobilierGuide pratique du crowdfunding immobilier
Guide pratique du crowdfunding immobilier
 
Cuadro elisandro (1)
Cuadro elisandro (1)Cuadro elisandro (1)
Cuadro elisandro (1)
 
Gestion de-qualité
Gestion de-qualitéGestion de-qualité
Gestion de-qualité
 
Café Bd et manga
Café Bd et mangaCafé Bd et manga
Café Bd et manga
 
Josemogollon
JosemogollonJosemogollon
Josemogollon
 
Mapa
MapaMapa
Mapa
 
Grupo de Trabajo "Datos económicos básicos asociados ANEPMA, indicadores y pa...
Grupo de Trabajo "Datos económicos básicos asociados ANEPMA, indicadores y pa...Grupo de Trabajo "Datos económicos básicos asociados ANEPMA, indicadores y pa...
Grupo de Trabajo "Datos económicos básicos asociados ANEPMA, indicadores y pa...
 
Ondernemen frankrijk
Ondernemen frankrijkOndernemen frankrijk
Ondernemen frankrijk
 
Learning Expedition à New York, Community Management & E-Reputation
Learning Expedition à New York, Community Management & E-Reputation Learning Expedition à New York, Community Management & E-Reputation
Learning Expedition à New York, Community Management & E-Reputation
 
rapport cours projet - overview
rapport cours projet - overviewrapport cours projet - overview
rapport cours projet - overview
 
Grupo de Trabajo: Responsabilidad Social y Sostenibilidad en ANEPMA
Grupo de Trabajo: Responsabilidad Social y Sostenibilidad en ANEPMAGrupo de Trabajo: Responsabilidad Social y Sostenibilidad en ANEPMA
Grupo de Trabajo: Responsabilidad Social y Sostenibilidad en ANEPMA
 
Guia de orientacian_entrevista_mayoritaria
Guia de orientacian_entrevista_mayoritariaGuia de orientacian_entrevista_mayoritaria
Guia de orientacian_entrevista_mayoritaria
 
La Caverne du Pont d'Arc, un an après
La Caverne du Pont d'Arc, un an aprèsLa Caverne du Pont d'Arc, un an après
La Caverne du Pont d'Arc, un an après
 
Printemps de l'innovation 2015 - Académie de Lyon
Printemps de l'innovation 2015 - Académie de LyonPrintemps de l'innovation 2015 - Académie de Lyon
Printemps de l'innovation 2015 - Académie de Lyon
 

Similaire à PHP 6, la prochaine frontière

Auditer son code pour plus de sécurité.
Auditer son code pour plus de sécurité. Auditer son code pour plus de sécurité.
Auditer son code pour plus de sécurité. Damien Seguy
 
Alfresco en quelques points - Recherche Tutorial
Alfresco en quelques points - Recherche TutorialAlfresco en quelques points - Recherche Tutorial
Alfresco en quelques points - Recherche TutorialPASCAL Jean Marie
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear phpDamien Seguy
 
SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101Benoit Fillon
 
Formation PHP
Formation PHPFormation PHP
Formation PHPkemenaran
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPrestaShop
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
PHP - get started
PHP - get startedPHP - get started
PHP - get startedmazenovi
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Dr Samir A. ROUABHI
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP NextSQLI
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielleDavid Buros
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Jérôme Mainaud
 
Internationalisez vos développements - WP Tech 2018
Internationalisez vos développements - WP Tech 2018Internationalisez vos développements - WP Tech 2018
Internationalisez vos développements - WP Tech 2018Frédéric Demarle
 
symfony : Simplifier le développement des interfaces bases de données (PHP ...
symfony : Simplifier le développement des interfaces bases de données (PHP ...symfony : Simplifier le développement des interfaces bases de données (PHP ...
symfony : Simplifier le développement des interfaces bases de données (PHP ...Fabien Potencier
 
Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7neuros
 
Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Damien Seguy
 
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partieCours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partiekadzaki
 

Similaire à PHP 6, la prochaine frontière (20)

Auditer son code pour plus de sécurité.
Auditer son code pour plus de sécurité. Auditer son code pour plus de sécurité.
Auditer son code pour plus de sécurité.
 
Alfresco en quelques points - Recherche Tutorial
Alfresco en quelques points - Recherche TutorialAlfresco en quelques points - Recherche Tutorial
Alfresco en quelques points - Recherche Tutorial
 
La référence Clear php
La référence Clear phpLa référence Clear php
La référence Clear php
 
SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101
 
Retour d'expérience sur PowerShell
Retour d'expérience sur PowerShellRetour d'expérience sur PowerShell
Retour d'expérience sur PowerShell
 
Formation PHP
Formation PHPFormation PHP
Formation PHP
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
Shell
ShellShell
Shell
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
 
Audits php
Audits phpAudits php
Audits php
 
PHP - get started
PHP - get startedPHP - get started
PHP - get started
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP Next
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielle
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
 
Internationalisez vos développements - WP Tech 2018
Internationalisez vos développements - WP Tech 2018Internationalisez vos développements - WP Tech 2018
Internationalisez vos développements - WP Tech 2018
 
symfony : Simplifier le développement des interfaces bases de données (PHP ...
symfony : Simplifier le développement des interfaces bases de données (PHP ...symfony : Simplifier le développement des interfaces bases de données (PHP ...
symfony : Simplifier le développement des interfaces bases de données (PHP ...
 
Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7
 
Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)
 
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partieCours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partie
 

Plus de Damien Seguy

Strong typing @ php leeds
Strong typing  @ php leedsStrong typing  @ php leeds
Strong typing @ php leedsDamien Seguy
 
Strong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisationStrong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisationDamien Seguy
 
Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeDamien Seguy
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applicationsDamien Seguy
 
Top 10 pieges php afup limoges
Top 10 pieges php   afup limogesTop 10 pieges php   afup limoges
Top 10 pieges php afup limogesDamien Seguy
 
Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020Damien Seguy
 
Top 10 php classic traps confoo
Top 10 php classic traps confooTop 10 php classic traps confoo
Top 10 php classic traps confooDamien Seguy
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Damien Seguy
 
Top 10 php classic traps php serbia
Top 10 php classic traps php serbiaTop 10 php classic traps php serbia
Top 10 php classic traps php serbiaDamien Seguy
 
Top 10 php classic traps
Top 10 php classic trapsTop 10 php classic traps
Top 10 php classic trapsDamien Seguy
 
Top 10 chausse trappes
Top 10 chausse trappesTop 10 chausse trappes
Top 10 chausse trappesDamien Seguy
 
Code review workshop
Code review workshopCode review workshop
Code review workshopDamien Seguy
 
Understanding static analysis php amsterdam 2018
Understanding static analysis   php amsterdam 2018Understanding static analysis   php amsterdam 2018
Understanding static analysis php amsterdam 2018Damien Seguy
 
Review unknown code with static analysis php ce 2018
Review unknown code with static analysis   php ce 2018Review unknown code with static analysis   php ce 2018
Review unknown code with static analysis php ce 2018Damien Seguy
 
Everything new with PHP 7.3
Everything new with PHP 7.3Everything new with PHP 7.3
Everything new with PHP 7.3Damien Seguy
 
Php 7.3 et ses RFC (AFUP Toulouse)
Php 7.3 et ses RFC  (AFUP Toulouse)Php 7.3 et ses RFC  (AFUP Toulouse)
Php 7.3 et ses RFC (AFUP Toulouse)Damien Seguy
 
Tout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCTout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCDamien Seguy
 
Review unknown code with static analysis php ipc 2018
Review unknown code with static analysis   php ipc 2018Review unknown code with static analysis   php ipc 2018
Review unknown code with static analysis php ipc 2018Damien Seguy
 
Code review for busy people
Code review for busy peopleCode review for busy people
Code review for busy peopleDamien Seguy
 
Static analysis saved my code tonight
Static analysis saved my code tonightStatic analysis saved my code tonight
Static analysis saved my code tonightDamien Seguy
 

Plus de Damien Seguy (20)

Strong typing @ php leeds
Strong typing  @ php leedsStrong typing  @ php leeds
Strong typing @ php leeds
 
Strong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisationStrong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisation
 
Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le code
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applications
 
Top 10 pieges php afup limoges
Top 10 pieges php   afup limogesTop 10 pieges php   afup limoges
Top 10 pieges php afup limoges
 
Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020
 
Top 10 php classic traps confoo
Top 10 php classic traps confooTop 10 php classic traps confoo
Top 10 php classic traps confoo
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4
 
Top 10 php classic traps php serbia
Top 10 php classic traps php serbiaTop 10 php classic traps php serbia
Top 10 php classic traps php serbia
 
Top 10 php classic traps
Top 10 php classic trapsTop 10 php classic traps
Top 10 php classic traps
 
Top 10 chausse trappes
Top 10 chausse trappesTop 10 chausse trappes
Top 10 chausse trappes
 
Code review workshop
Code review workshopCode review workshop
Code review workshop
 
Understanding static analysis php amsterdam 2018
Understanding static analysis   php amsterdam 2018Understanding static analysis   php amsterdam 2018
Understanding static analysis php amsterdam 2018
 
Review unknown code with static analysis php ce 2018
Review unknown code with static analysis   php ce 2018Review unknown code with static analysis   php ce 2018
Review unknown code with static analysis php ce 2018
 
Everything new with PHP 7.3
Everything new with PHP 7.3Everything new with PHP 7.3
Everything new with PHP 7.3
 
Php 7.3 et ses RFC (AFUP Toulouse)
Php 7.3 et ses RFC  (AFUP Toulouse)Php 7.3 et ses RFC  (AFUP Toulouse)
Php 7.3 et ses RFC (AFUP Toulouse)
 
Tout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCTout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFC
 
Review unknown code with static analysis php ipc 2018
Review unknown code with static analysis   php ipc 2018Review unknown code with static analysis   php ipc 2018
Review unknown code with static analysis php ipc 2018
 
Code review for busy people
Code review for busy peopleCode review for busy people
Code review for busy people
 
Static analysis saved my code tonight
Static analysis saved my code tonightStatic analysis saved my code tonight
Static analysis saved my code tonight
 

PHP 6, la prochaine frontière

  • 1. PHP 6, la prochaine frontière NEXEN - ALTER WAY GROUP 1
  • 2. Qui parle?  Damien Seguy  Architecte Open Source  Audits sécurité et performances  Eleveur d'éléPHPants NEXEN - ALTER WAY GROUP
  • 3. PHP 6, déjà?  Lancé en 2006  PHP 6 déjà disponible  snaps.php.net  Compilable  Loin d'être fini NEXEN - ALTER WAY GROUP
  • 4. Nouveautés  Nettoyages  Ajouts  Unicode  Unicode  Unicode  Unicode  Améliorations  Conservation  Ce qui change NEXEN - ALTER WAY GROUP
  • 5. Nettoyages  ncurses  ereg  mime_magic  remplacée par fileinfo  fonction dl() (par défaut)  Sortis de la distributions  Rangé dans PECL NEXEN - ALTER WAY GROUP
  • 6. Nettoyages  register_globals  safe_mode  magic_quotes  ze1_compatibility  register_long_variables  break le dynamique NEXEN - ALTER WAY GROUP
  • 7. Ajouts  file_info  Vérifier les types de fichiers  mysqlnd  MySQL Native Driver  hash  Pour les sessions  apc ? pas encore... NEXEN - ALTER WAY GROUP
  • 8. Ajouts <?php $i = 1;  Goto Label:  On aime print quot;$i: oknquot;; $i++;  if ($i <= 10) goto Label;  ou pas for($i = 0; $i < 10; $i++)  {    print quot;$i: oknquot;; } ?> NEXEN - ALTER WAY GROUP
  • 9. Nouvelles fonctions  char_*  collator_*  gc_*  strtotitle  locale_*  var_inspect  mhash_*  str_getcsv  unicode_* NEXEN - ALTER WAY GROUP
  • 10. Unicode  Gérer les langues  Basé sur ICU de IBM  unicode.semantics  Andrei Zmeivski et Sara Golemon NEXEN - ALTER WAY GROUP
  • 11. Unicode  Conversions  Dans le code PHP  Dans les tris  Dans les chaînes  Dans les manipulations  Dans les locales NEXEN - ALTER WAY GROUP
  • 12. Je ne suis pas un octet!  Un caractère n'est pas un octet $francais = quot;Bonjour le mondequot;; echo strlen($francais); // 16 caractères $chinois = quot; quot;; echo strlen($chinois); // 5 caractères echo strlen((binary) $chinois); // 15 caractères NEXEN - ALTER WAY GROUP
  • 13. Les identifiants class français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} function வாேகனச {} function འབྲུག་ཡུལ། {} } $déjà = new français(); echo $déjà->வாேகனச; NEXEN - ALTER WAY GROUP
  • 14. Les identifiants class français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit function வாேகனச {} function འབྲུག་ཡུལ། {} } $déjà = new français(); echo $déjà->வாேகனச; NEXEN - ALTER WAY GROUP
  • 15. Les identifiants class français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit function வாேகனச {} Tamoul function འབྲུག་ཡུལ། {} } $déjà = new français(); echo $déjà->வாேகனச; NEXEN - ALTER WAY GROUP
  • 16. Les identifiants class français { function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ {} Inuit function வாேகனச {} Tamoul function འབྲུག་ཡུལ། {} Tibétain } $déjà = new français(); echo $déjà->வாேகனச; NEXEN - ALTER WAY GROUP
  • 17. À la pelle  500+ encodages  230 locales (formats et fuseaux)  Expressions rationnelles  Translitération  Découpage de mots  Accès en écritures aux caractères NEXEN - ALTER WAY GROUP
  • 18. Offset de chaînes  On peut accéder aux caractères en lecture et écriture  Les [] sont $pays = quot; quot;; recommandés echo $pays[0]; // result is  Les {} sont $pays[0] = ' '; obsolètes // $pays vaut NEXEN - ALTER WAY GROUP
  • 19. Utilitaires texte $text = quot;Les mots ne sont séparés que par des espaces? non!quot;; foreach (new TextIterator($text, TextIterator::WORD) as $u) { if ($u != quot; quot;) echo($u),quot;nquot;; } Les mots ne  Découpages intelligents sont  Octets séparés que  Caractères par des  Mots espaces ?  Phrases entières non ! NEXEN - ALTER WAY GROUP
  • 20. Translitération $noms = quot; , Gim, Gugsam , Gim, Myeonghyi , Takeda, Masayuki Oohara, Manabu , Gorbačev, Mihail Горбачев, Михаил Kozyrev, Andrej Козырев, Андрей Kaphetzópoulos, Καφετζόπουλος, Θεόφιλος Theóphilos Θεοδωράτου, Ελένηquot;; Theodōrátou, Elénē $r = strtotitle( str_transliterate($noms, quot;Anyquot;, quot;Latinquot;)); NEXEN - ALTER WAY GROUP
  • 21. Séquences  Caractères  uXXXX  UXXXXXX  C{LATIN CAPITAL LETTER C WITH CIRCUMFLEX}  Transtypage  (unicode)  (binary) NEXEN - ALTER WAY GROUP
  • 22. Entrée / sortie  Encodage de script  Encodage de fichiers  Encodage d'exécution  Encodage HTTP d'entrée  Encodage HTTP de sortie  Traitement spécifique aux flux NEXEN - ALTER WAY GROUP
  • 23. Améliorations  __autoload() est retirée de situations limites (is_a(), catch)  output_buffering : réécriture totale  Lazy coding des auto-globales  Créées à la demande NEXEN - ALTER WAY GROUP
  • 24. Conservations  mbstring, ctype  Vont disparaître  mysql  mysqli, pdo, pdo2... =  Pas de débogueur intégré NEXEN - ALTER WAY GROUP
  • 25. Conservations  Les fonctions et leur nom  Pas de standardisation forcée  Les identifiants sont toujours insensibles à la casse  Il existe un patch...  Support de finally  Héritage multiple NEXEN - ALTER WAY GROUP
  • 26. Ce qui change macadams:~/bin/php6.0-200801221530/sapi/cli macbook$ ./php PHP Warning: Directive 'register_globals' is no longer supported in PHP 6 and greater in Unknown on line 0 PHP 6.0.0-dev (cli) (built: Jan 22 2008 12:45:43) Copyright (c) 1997-2008 The PHP Group Zend Engine v3.0.0-dev, Copyright (c) 1998-2008 Zend Technologies PHP Ext Poids Mémoire 4.4.8 43 8 Mo 13 ko 5.3.0 65 24 Mo 50 ko 6.0.0 43 19 Mo 53 ko NEXEN - ALTER WAY GROUP
  • 27. Performances? PHP 4 PHP 5 PHP 6 6,7300 5,0475 3,3650 1,6825 0 add concat append md5 NEXEN - ALTER WAY GROUP
  • 28. Où en est-on?  Ça compile  62 % des fonctions PHP ont été revues  PHP 5.3 doit sortir avant  La version de transition  16 sites dans le monde l'ont adopté... NEXEN - ALTER WAY GROUP
  • 29. Questions?  http://www.alterway.fr/  damien.seguy@nexen.net  http://www.nexen.net/conferences.php NEXEN - ALTER WAY GROUP