déc 11 2008

Je soutiens favorablement ILIAD pour la 4 eme licence mobile !

Catégorie : Non classéJulien - 19:54

Je soutiens favorablement ILIAD pour la 4 eme licence mobile !

Arrêtons de payer les abonnements hors de prix de SFR… BOUYGUE… et ORANGE !


nov 26 2008

Stand by… et réflexion…

Catégorie : Non classéJulien - 23:01

Un petit, mais alors tout petit article pour dire que je suis en stand by… et en pleine rélfexion sur les futures articles que je vais présenter dans ce blog, mais aussi sur mon organisation personnelle.

Afin que ma courbe d’apprentissage ne suive pas celle du CAC 40. Wait and see…

D’autre part, on se retrouve si tout se passe bien au forum PHP 2008 à Paris le 8/12 et 9/12.

PS: TGWIM (on peut aussi parler en public et codé :p)


août 19 2008

PHP et les Espaces de Noms ou Namespaces

Catégorie : Non classé, PHPJulien - 20:32

Qu’est ce qu’un namespaces ?

Une des nouveautés majeure de PHP 5.3 est le support des namespaces. Mais qu’est-ce donc que les espaces de nom ?

Pour l’expliquer très simplement, il suffit de remonter à l’époque ou l’envie vous prenait de créer une fonction appelée date.

Votre fonction déclarée par le mot clé function se retrouvée dans la contexte global.

Par conséquent, comme PHP intègre déjà une fonction native appelée date dans le contexte global, et qu’il est impossible de re-déclarer une fonction.

Une erreur de la forme suivante vous était remontée :

Fatal error: Cannot redeclare date()

C’est à ce moment que les espaces de nom entrent en jeu !

Les namespaces permettent de créer des espaces décalés par rapport à l’espace global.

Ainsi, il est possible dans un espace de nom de déclarer des noms de fonctions et classes connues dans l’espace global !

Comment utiliser les namespaces ?

L’utilisation d’un espace de nom est très simple, il s’utilise comme ceci :

Déclarer un namespace

  1. <?php
  2. // test_a.php
  3. namespace MySpace::MySubSpace;
  4. function MyFunction()
  5. {
  6. $str = ‘Julien Breux’; // Petit coucou pour Google ;)
  7. return $str;
  8. }
  9. ?>

Utiliser un namespace par chemin absolue

  1. <?php
  2. // test_b.php
  3. require(‘test_a.php’);
  4.  
  5. $result = MySpace::MySubSpace::MyFunction();
  6. ?>

Utiliser un namespace par “importation”

  1. <?php
  2. // test_c.php
  3. require(‘test_a.php’);
  4.  
  5. // Exemple 1
  6. use MySpace;
  7. $result = MySubSpace::MyFunction();
  8.  
  9. // Exemple 2
  10. use MySpace::MySubSpace;
  11. $result = MyFunction();
  12. ?>

Utiliser un namespace avec des alias

  1. <?php
  2. // test_d.php
  3. require(‘test_a.php’);
  4.  
  5. use MySpace::MySubSpace::MyClass as MyOtherClass;
  6. $result = new MyOtherClass();
  7. ?>

Aller plus loin

Quelques points importants sont aussi à noter avec l’arrivée des espaces de nom:

- La constante __NAMESPACE__ est chargée de retourner le nom du namespace courant.

- Possibilité de déclarer une constante avec le mot clé CONST à l’intérieur un namespace.

- Pour utiliser une fonction de l’espace de nom global, nous utilisons l’accesseur directe ::MyGlobalFunction();

Mot de la fin

Les namespaces, c’est bien !

Dans le prochain article, nous parlerons de la librairie PHAR intégrée en natif à PHP6.

Tags: , , ,