PHP 6 - Vous adapter

Par FlUxIuS 2008-04-28 { Catégorie : PHP }

PHP6 ready

Beaucoup on entendu parlé de PHP6 est des changements... sera-t'il possible de s'adapter avec autant de changements surtout si cela va jusqu'à affecter notre mode de programmation habituel ? On vous donne la solution !

 

 

 Le 31 décembre 2007 PHP Group stoppe le support PHP4 et encore beaucoup d'utilisateurs sans doute nostaligique ou pas, n'ont pas encore dépassé le cap pour aller vers la version 5 et pourtant ils le devraient...

Changements

Suppressions

Cette fois-ci, PHP6 fait le ménage en supprimant (pour ceux qui ne savent pas) : Les Register globals, Magic quotes, Safe Mode, PECL (qui pourra être téléchargé, mais absent dans le package officiel de PHP6).

Certaines extensions les moins utilisées migrent vers PECL mais aussi celles des bases de données laissant cette fois la place à PDO que nous introduirons plus tard...

 

Intégrations

 

Foreach -> Syntaxe multi-dimentionnel :

foreach( $array as $k => list($a, $b))

Exemple :

<?php
$a = array(array(1, 2), array(3, 4)); // Tableau 2D 

foreach( $a as $k => $v) { 

        print_r($v); // Liste le tableau
}
?>

 Celà donnera le résultat : Array ( [0] => 1 [1] => 2 ) Array ( [0] => 3 [1] => 4 )

Le goto :

WoaOu :) ça rappel des souvenirs. Selon la source Minutes PHP Developers Meeting il se caractériserait par "beark", mais si ça ne marche, faites comme le bon vieux ASM :

<?php
if (!$_GET['loup']) { // Control de la presence du loup sinon on saute
        goto sautemouton; 
   }

        echo "Mangé par le loup !"; // aucuns sauts 
 sautemouton:
        echo "mouton sauvé !\n"; // Le mouton saute comme SuperCheep ! Baaaaa !!

?>

ifsetor() :

Voilà un opérateur très écologique niveau taille de programmation, remplaçant par exemple :

<?php
        $value = isset($_GET['val']) ? $_GET['val'] : "valeur par defaut";

        echo $value; // Renvera la valeur $_GET['val'] si elle est initialisee sinon : "valeur par defaut"
?>

Par :

<?php 
      $value = ifsetor($_GET['val'], 'valeur par defaut');

      echo $value;
?>

 Mais les développeurs ont quelques désaccords avec cette implémentation. En tout cas rien ne vous dispense de faire une fonction de la sorte ;).

Voilà donc quelques changements et maintenant passons aux méthodes afin d'avoir le minimum de soucis avec la migration PHP5 vers PHP6.

Migration PHP5 vers PHP6

Avant tout n'allez surtout pas passer votre serveur PHP5 vers PHP6 sans en connaître la compatibilité de vos codes car malgrés les suppressions et les extensions envoyées vers PECL, vos codes risques de ne pas fonctionner. Bien malheureusement si vous êtes en possèssion d'applications comme Joomla, qui est un des codes les plus utilisés,  vos codes ne marcherons pas à moin que Joomla ait fai une modification mode Sonic à cette date...

Installation d'un serveur de test

Windows

La plupart de vous êtes sur Windows et je conseil le software WampServer (Surtout la version Dev équipée de PHP6), développé par Romain BOURDON de la société Anaska - Formation Open-Source.

Systèmes de type Unix

Un tutoriel vous décrivant l'installation d'un serveur LAMP6 est disponible <ici>

Pour ceux qui auraient déjà un serveur LAMP, je conseil juste l'étape de l'installation de PHP6 et une installation manuelle de la version stable MySQL vers /usr/local afin d'intégrer l'instruction suivant à la configuration :

--with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql

Pourquoi ? : Car les drivers PDO de MySQL ne sont pas intégrés par défaut...

Manières de programmer

Pour ceux qui n'auraient pas écouté les bons conseils d'auteurs ou de formateurs... nous voilà dans l'application des habitudes à prendre :

<?php
  /*
  *       $dbType  :  - Firebird/Interbas : firebird
                      - Microsoft SQL Server and Sybase : dblib
                      - IBM : imb - Informix : informix - Oracle : oci
                      - ODBC and DB2 : odbc
                      - PostgreSQL : pgsql
                      - SQLite : sqlite
                      - MySQL : mysql
  *
  */
  try {          $dbh = new PDO($dbType.':host='.$hostname.';dbname='.$dbname, $user, $pass);   } catch (PDOException $e) {           die( "Erreur ! : " . $e->getMessage() );   } ?>

Conlusion

Comme beaucoup avant moi l'ont remarqué, PHP6 bouleversa la manière de programmer chez les utilisateurs et risque sûrement de poser problème au niveau de la sécurité, car l'assistance n'y est plus.

Mais le fait d'ajouter des fonctions utiles est très arrangeant, surtout PDO qui permettra de changer de type de bases de données en deux cliques.

 PHP 6 promet donc un grand nettoyage et toujours d'améliorer chaques jours le travail des développeurs ;)

Support

SlashOn reste à votre disposition pour tout ce qui concerne l'adaptation des scripts et la migration vers PHP6 : http://forum.slashon.com

 

Source : http://www.php.net/~derick/meeting-notes.html

Article de Cyril Pierre de Geyer : http://www.cyruss.com/blog/index.php?2007/05/05/170-les-nouveautes-de-php6-php-6

Powered by SlashOn blog - © Sebastien D. (FlUxIuS)

Debian powered Server Creative Commons License W3c Validation
Cette création est mise à disposition sous un contrat Creative Commons