GNU/Linux Magazine Hors-série N°
Numéro
54

Spécial PHP

Temporalité
Mai/Juin 2011
Image v3
Spécial PHP
Article mis en avant

Résumé
En quelques années, PHP a su se faire une place dans le monde des serveurs web. Ce langage qui originellement ne proposait aucune révolution est maintenant un standard et rivalise avec les outils professionnels propriétaires, en quelques sortes. En effet, la popularité de langages comme le bon vieux Perl, Java, Python, Ruby et, bien entendu, PHP est si importante en termes de développement web qu'il ne reste presque plus de place, aujourd'hui, pour une alternative propriétaire. Comment est-ce arrivé et qu'est-ce que PHP ? C'est là l'objet de cet article.

Dans ce numéro...


PHP est un langage de programmation scriptable embarqué dans HTML. En pratiquant HTML durant une longue période, on se rend rapidement compte des limites imposées par un simple langage de description. PHP peut vous rendre des services quel que soit le type de site que vous souhaitez concevoir.
Depuis sa version 5, PHP dispose d'un véritable système de programmation orientée objet. Cet article se présentera sous la forme d'un rappel théorique de programmation orientée objet accompagné de la mise en pratique en PHP.
Au paravant, PHP était fortement lié à MySQL. Pour s'en rendre compte, encore aujourd'hui, il suffit d'aller dans une librairie et lire les titres des ouvrages consacrés à PHP pour voir qu'un sur deux associe PHP à MySQL. De la même manière, consulter les sources de la plupart des projets libres montrera une forte dépendance à MySQL de la majorité du code.PDO, une extension PECL pour PHP 5.0 intégrée depuis sa version 5.1, est présentée comme une composante essentielle. L'idée est extrêmement simple : présenter une et une seule manière de parler à n'importe quel SGBD. L'apport pour le projet est très concret : être capable de rendre le produit final indépendant du choix du SGBD et donc s'adapter plus facilement à la matrice technologique et aux contraintes du client.De plus, il y a une dimension nouvelle liée à la sécurité.
La génération de contenu HTML avec PHP a longtemps été une horreur absolue. Dans ce cadre, des solutions comme Smarty ont émergé, permettant de produire des vues propres et donc maintenables, et les nouvelles pratiques issues des recommandations faites par les frameworks nouvelle génération comme Zend Framework, par exemple, offrent la possibilité de fixer des règles simples qui suffisent à assurer la compréhension, la réutilisabilité et la maintenabilité sans sacrifier les performances.
Une application doit effectuer beaucoup d'actions différentes qu'il convient d'organiser. Il s'agit de se fixer des règles et de mettre au point les outils utiles pour les appliquer. C'est le travail conjoint d'un dispatcher, d'un autoloader et d'un bootstrap. Par la suite, il suffit de créer des contrôleurs type pour se faciliter le travail et de n'avoir qu'à se concentrer sur le fonctionnel lors du développement d'une application.Le cadre applicatif est essentiel et répond autant à un besoin de simplification du travail qu'à des problématiques techniques.La méthode consistant à n'avoir à gérer qu'un seul point d'entrée dans l'application reste extrêmement utile et permet entre autres une meilleure sécurité et un meilleur contrôle des événements en les faisant entrer dans un cycle que l'on peut contrôler et systématiser (ACL, contrôle de données).Un fichier PHP ne contient, tacitement, qu'une et une seule classe PHP. Il faut donc aller les charger avant de pouvoir utiliser la classe. Et ceci coûte. C'est du travail en plus et de la performance en moins. Alors pourquoi faire un travail dont on peut se passer totalement ?
La qualité logicielle est un enjeu majeur. Il existe aujourd'hui un certain nombre d'indicateurs qui font consensus et qui aident à mesurer certains aspects du développement d'une application, et permettent d'aider à l'amélioration.Les objectifs finaux sont d'avoir un logiciel qui répond aux besoins de telle sorte qu'il reste simple et permette des évolutions ultérieures à moindre coût.Les pré-requis sont l'installation de PHP et de PEAR.
Ce court article a pour ambition de présenter des outils utiles au développement.
En Java ou en Python, avec Tomcat, Turbogears ou Zope3, lorsque le serveur est lancé, le code source est lu, compilé et l'environnement est construit. À partir de ce moment-là, ces serveurs sont prêts à répondre à des requêtes en ayant rien d'autre à faire que de les traiter.Le serveur web Apache PHP est différent. À chaque requête, les fichiers sources (uniquement ceux appelés) sont lus, interprétés, l'environnement est reconstruit puis la requête est traitée.Une des conséquences est que d'une requête à la suivante, il n'y a pas de persistance de données. La session PHP va permettre de pallier ce problème en proposant un système permettant de stocker quelques données.Cet article va reprendre les fondamentaux et exposer les bonnes pratiques.
Quel que soit le site à développer, il peut arriver qu'il devienne nécessaire d'authentifier les utilisateurs via un nom et un mot de passe. Il existe plusieurs manières de procéder, comme nous l'avions vu dans le hors-série 50 consacré à Apache en octobre dernier. PHP intègre également ses propres mécanismes. Nous allons étudier ici la manière de mélanger authentification HTTP avec du code PHP.
Vous utilisez PHP pour vos développements... mais vous êtes-vous déjà demandé si votre manière de programmer avait une influence sur la vitesse d'exécution de votre code ? Je ne parle pas ici d'algorithmique, mais de choix de fonctions ou de syntaxe. Est-ce que le fait de modifier un tant soit peu vos habitudes de développement peut permettre de produire un code plus performant ?

Magazines précédents

Initiation à Python
GNU/Linux-Magazine Hors-série N°53
Initiation à Python
Développement Android
GNU/Linux-Magazine Hors-série N°52
Développement Android
Hacks, électronique & embarqué
GNU/Linux-Magazine Hors-série N°51
Hacks, électronique & embarqué
Incontournable Python
GNU/Linux-Magazine Hors-série N°49
Incontournable Python

Les derniers articles Premiums

Les derniers articles Premium

Bénéficiez de statistiques de fréquentations web légères et respectueuses avec Plausible Analytics

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Pour être visible sur le Web, un site est indispensable, cela va de soi. Mais il est impossible d’en évaluer le succès, ni celui de ses améliorations, sans établir de statistiques de fréquentation : combien de visiteurs ? Combien de pages consultées ? Quel temps passé ? Comment savoir si le nouveau design plaît réellement ? Autant de questions auxquelles Plausible se propose de répondre.

Quarkus : applications Java pour conteneurs

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Initié par Red Hat, il y a quelques années le projet Quarkus a pris son envol et en est désormais à sa troisième version majeure. Il propose un cadre d’exécution pour une application de Java radicalement différente, où son exécution ultra optimisée en fait un parfait candidat pour le déploiement sur des conteneurs tels que ceux de Docker ou Podman. Quarkus va même encore plus loin, en permettant de transformer l’application Java en un exécutable natif ! Voici une rapide introduction, par la pratique, à cet incroyable framework, qui nous offrira l’opportunité d’illustrer également sa facilité de prise en main.

De la scytale au bit quantique : l’avenir de la cryptographie

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Imaginez un monde où nos données seraient aussi insaisissables que le célèbre chat de Schrödinger : à la fois sécurisées et non sécurisées jusqu'à ce qu'un cryptographe quantique décide d’y jeter un œil. Cet article nous emmène dans les méandres de la cryptographie quantique, où la physique quantique n'est pas seulement une affaire de laboratoires, mais la clé d'un futur numérique très sécurisé. Entre principes quantiques mystérieux, défis techniques, et applications pratiques, nous allons découvrir comment cette technologie s'apprête à encoder nos données dans une dimension où même les meilleurs cryptographes n’y pourraient rien faire.

Body