Julien Pauli - Cours, articles et tutoriaux PHP -
 

Ces articles sont en cours de migration et de réécriture, en version anglaise, vers http://jpauli.github.io. Merci.

Share

Articles

PHP

Fonctionnement interne

Maitrise de la gestion des variables
Tout le monde sait manipuler des variables en PHP. Peut-on en dire autant quand les concepts de "copie" et de "références" entrent en jeu ? Nous allons détailler comment fonctionnent les variables au niveau interne à PHP. Cela nous permettra de comprendre très nettement les mécanismes mis en oeuvre lors de l'utilisation d'objets, de références, de fonctions ou de simples variables globales.

Langage

Opérations booléennes et logique binaire en PHP
Savoir manipuler des données binaires en base 2 ou en base 16 (hexadécimal) peut s'avérer nécessaire ne serait-ce que pour la compréhension d'un algorithme. PHP propose pas mal de fonctionnalités à ce sujet, nous allons les passer en revue avec quelques exemples concrets.

Utilisation du débogueur PHP Xdebug
Xdebug est une extension PHP que l'on ne présente plus. Débogueur, profileur (analyse de performances), analyseur de couverture ainsi que fonctionnalités avancées d'introspection PHP, sont autant de possibilités offertes par cette extension entièrement gratuite sous une licence compatible avec celle de PHP. En un mot : un indispensable

Utilisation du tampon de sortie en PHP
Lors du déclenchement d'un affichage en PHP (echo, var_dump, printf ou toute autre fonction), la chaine à afficher ne part pas directement vers l'affichage. Elle est en réalité stockée dans différentes piles appelées "tampons", sur lesquelles l'utilisateur a un contrôle plus ou moins fin. Lorsque le dernier tampon tout en bas est vidé, l'affichage est alors envoyé à un endroit, en fonction de la SAPI utilisée. Par exemple pour CLI, il s'agira de la sortie standard: la chaine est affichée à l'écran. Nous allons ici détailler les différentes couches de tampon, leur utilisation et leur impact sur le code PHP.

PHPUnit avancé : patterns de tests
Nous avons déjà compris le fonctionnement de PHPUnit et le principe des tests en développement PHP, au travers de l'article Développement piloté par les tests avec PHPUnit. Nous allons à présent montrer les fonctionnalités avancées de PHPUnit notamment concernant les patterns de tests, Mock, Stub, Double, Spy ; nous verrons comment les mettre en place au travers d'un exemple simple et concret, et en quoi ces techniques peuvent rapidement devenir addictives. Pour cela, il conviendra de rappeler les grands principes du développement logiciel orienté objet : SOLID.

Le développement piloté par les tests avec PHPUnit
Les tests, au même titre que la documentation, font parti du code. Un code fouilli est difficilement testable. Un code testable est un code maintenable. Tester son code permet de mieux appréhender le changement de spécifications et de valider le bon fonctionnement d'un algorithme. Nous allons voir une initiation au développement piloté par les tests, avec PHPUnit.

La gestion avancée des dates
Depuis PHP 5.1, la gestion des dates en PHP a profondément changé. Certaines fonctions ont été réécrites, la gestion interne des dates s'est agrandie et elle est devenue indépendante de l'OS sous-jascent.
De nouveaux objets/fonctions ont fait leur apparition qui apportent, entres autres, la gestion des fuseaux et décalages horaires (heure d'été), autant de notions intéréssantes en développement web et sur lesquelles il serait dommage de faire l'impasse. Faisons un point dessus.

Les liaisons UML implémentées avec PHP
UML définit plusieurs liens remarquables entre les classes. La totalité de ces liens pondérés permet de mesurer ce que l'on appelle le couplage. Savoir lire un diagramme de classes est aujourd'hui indispensable pour la conception d'une application web.
PHP ne fait pas exception à cela, son modèle objet étant très mûr et tout à fait capable. Nous allons ici présenter les différentes liaisons, leurs caracteristiques ainsi que leurs avantages/inconvénients et quand les utiliser. Association, héritage, agrégation, composition. Dans cet article, nous allons voir comment utiliser ces liaisons avec PHP.

Design Pattern observateur tout en puissance
Le design pattern observateur est un classique du GOF, il participe au découplage et à la réduction des dépendances.
En général, 2 interfaces sont utilisées, on peut aussi manipuler des classes abstraites. Nous allons ici montrer un exemple complet de son utilisation et nous allons nous aider de la puissante librairie objet interne de PHP : la SPL.

Introduction à la SPL : Standard PHP Library
PHP5 possède un modèle objet 'non vide' : il est agrémenté de classes et d'interfaces internes, réunis dans ce qu'on appelle la SPL, ou Standard PHP Library.
Nous allons décrire en quoi ils peuvent s'avérer très utiles.

Apache

Conception détaillée d'hôtes virtuels sous Apache
Souvent peu compris, l'hébergement virtuel est de nos jours un acquis. Un même serveur physique/logiciel capable d'héberger plusieurs sites parfois très différents, voila ce qu'est le "virtual hosting" (vhost) Dans cet article, nous allons voir comment mettre en place un hébergement virtuel sous Apache, avec le détail de toutes les facettes : types de vhost, sécurité, contrôle d'accès, DNS...

Configurer un forward proxy simple avec Apache
Nous allons détailler la mise en place d'un proxy forward avec Apache2. Nous partirons depuis la compilation du logiciel, jusqu'à sa configuration complète, mise en cache comprise. En Français, un proxy se traduit par "serveur mandataire". Nous garderons cependant le mot "proxy" dans cet article.

Web

HTTP : le protocole du Web passé en revue
HTTP est le protocole du Web. Comprendre HTTP, c'est comprendre une bonne partie du fonctionnement du Web et une partie conséquente des enjeux d'aujourd'hui concernant la sécurité des applications webs. Nous allons détailler dans cet article le protocole en lui-même. Vous allez voir qu'il n'est pas spécialement simple, contrairement à ce qu'on pourrait penser, et qu'une mauvaise compréhension ou utilisation peuvent avoir des repercussions néfastes, notamment sur les performances, le rendu final de la réponse, voire la sécurité du réseau. Nous nous rendrons aussi compte qu'il est complet, et qu'à ce titre on utilise rarement son plein potenciel, à tort (même si quelques fonctionnalités sont tout de même très spécifiques).

Copyright © 2006 Julien Pauli. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
 
 
 
Partenaires

PlanetHoster
Ikoula