Publié par le 7 juin 2010, 0 commentaire

Juste rapidement, les organisateurs du forum PHP 2010 (AFUP) cherchent des conférenciers pour participer au forum PHP 2010.

Je vous mets le lien :

http://www.afup.org/pages/site/?route=actualites/412/experts-php-participez-au-forum-php-2010

Publié par le 25 avril 2009, 2 commentaires

Alors que PHP 5.2.x vient d’atteindre sa 9 ème release, PHP 5.3 se prépare tranquillement.

Cette version sera une pré-release du fameux PHP 6 tant attendu et qui sera encore attendu pendant un temps certain.

Effectivement, beaucoup de travail pour l’équipe de développement qui a déjà déporté des nouveauté de la version 6 sur la version 5.3.

Dans les améliorations notoires :

  • intégration en natif de la bibliothèque mysqlnd permettant la prise en charge sans module des connexions au SGBD mysql (donc plus de module à charger) et bien sûr aucune modification des script actuel. Il est annoncé jusqu’à 20 % de gain de temps par rapport à la librairie actuelle.
  • la gestion des namespaces permettant de gérer des classes smiliaires.
  • la prise en charge des LABEL/GOTO (à utiliser avec précaution et à déprécier dans certain cas).
  • l’ajout des fonctions anonymes (du type $toto = new function(){ }).
  • moteur du Garbage Collection afin d’optimiser les scripts objets.
  • l’ajout de nouvelle erreurs (E_DEPRECATED).
  • et plein d’autres choses …..

L’annonce de la release candidate 1 :

http://www.php.net/archive/2009.php#id2009-03-24-1

Afin de vous faire une petite idée de ce qui nous attend, voici la vidéo de la conférence PHP TV de décembre 2008 :

Publié par le , 0 commentaire

Lorsque l’on développe une classe static en PHP, nous nous retrouvons avec une structure de ce type :

static class maClass{
  static function maFonction(){

     }
}

Lors de l’appel de cette méthode static dans notre code, nous utilisons ce code :

maClass::maFonction();

Le double deux points utilisé se nomme le « Paamayim Nekudotayim », mot venant de l’hébreux.

Pour en savoir plus :

http://www.php.net/manual/fr/language.oop5.paamayim-nekudotayim.php

Publié par le 21 février 2009, 2 commentaires

 Le modèle MVC, connu par bon nombre de développeur objet, est un modèle théorique permettant de segmenter les différents parties d’une application.

Ainsi, on va pouvoir dissocier les différents couches applicatives : affichage, base de données, gestion des actions, sécurité, etc.

Le modèle MVC, c’est :

  • M pour « modèle » : le modèle est la partie applicative permettant de gérer les traitements des données, c’est à dire principalement l’insertion/mise à jour et lecture des données dans la base de données, ainsi que les traitements de calcul qui seront effectués lorsqu’une action de l’utilisateur est lancé.
  • V pour « vue » : la vue est la partie graphique (IHM : interface homme/machine) en relation avec l’utilisateur. En PHP, ce sera la couche permettant de générer le code HTML nécessaire à l’affichage.
  • C pour « controleur » : le controleur est le noeud permettant de gérer la relation entre la vue et le modèle. En PHP, c’est une script procédural équivalent à un main dans un autre langage.

Bien que ce modèle MVC à trois couche est était très utilisé pendant des années, il est nécessaire aujourd’hui d’appliquer plus de couche afin de mieux segmenter les programmes et de pouvoir intervenir plus facilement et plus rapidement. Aussi, la segmentation par couche permet d’alléger les scripts et de rendre les bibliothèques plus légères.

Quelques sont les couches que l’on peut mettre en place ???

Et bien les voici :

  • IHM/contrôleur : couche permettant de gérer les différentes actions,
  • Graphique : couche permettant de générer les différents codes HTML ,
  • Identification : couche permettant de gérer les droits d’accès,
  • Sécurité : couche permettant le contrôle des données,
  • BDD : couche permettant de gérer les différentes requêtes SQL,
  • SGBD : couche permettant de gérer la creation des listing à partir de la couche BDD,
  • PDF : couche permettant de générer des fichiers PDF à partir de données,
  • et toutes les autres dont on a besoin …

Dans tous les cas, la segmentation par couche permet de segmenter les scripts, d’alléger le chargement des bibliothèques, d’éviter la redondance, et surtour de structurer les données et de diviser les différents services.

Publié par le , 0 commentaire
Catégorie : général

Tous le monde connait PHP 3 & 4 pour sa facilité de mise en place et sa souplesse de programmation au sein du code : le fait de pouvoir mélanger du HTML, du CSS, du JavaScript, du PHP, des connexions à MySQL, et plein d’autres protocoles est le vrai avantage de PHP.

Mais plusieurs problèmes se révèlent :

  • une multitude de page « brouillon »,
  • des pages non structurées,
  • une intervention difficile,
  • des pages à rallonge,
  • etc.

PHP 5 Objet est arrivé depuis quelques années maintenant et permet de mettre en place des scripts PHP dit « OBJET ».

Mais ….. KAICEKECEKECA ??

PHP 5 est concidéré par bon nombre de développeur comme un faut langage objet, et pourtant, il possède (surtout depuis PHP 5.3) tous les éléments propres au langage objet.
De la définition des classe, en passant par les NameSpaces, jusqu’à la sérialisation, PHP 5 est bel et bien un langage objet : de la POO.

Mais ce n’est pas tous, bien qu’il possède maintenant les avantages de l’objet, il garde bien sûr les avantages de PHP3 & 4, comme :

  • sa souplesse de typage des données,
  • la légerté d’exécution (face à d’autre langage comme Java),
  • le procédural encore possible,
  • etc.

Certains me diront que PHP 5 est très lourd au niveau des serveurs, je leur répondrais que la lourdeur de l’objet est compensé par l’amélioration du code et de la structure des codes. Aussi, je dirai que la gestion des ressources ne passe par que par l’optimisation du code PHP mais par l’optimisation du frontend (qui représente 95 % du temps d’attente de l’utlisateur).

 

Maintenant qu’on a mis un peu de lumière autour de PHP 5 objet, on va pouvoir voir quelques petits scripts fort sympathique :

  • les classes PHP,
  • le singleton,
  • les objets et les statics,
  • le modèle MVC ou « à couche »,
  • et pleins d’autres choses …