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

Stubby : protection de votre vie privée via le chiffrement des requêtes DNS

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

Depuis les révélations d’Edward Snowden sur l’espionnage de masse des communications sur Internet par la NSA, un effort massif a été fait pour protéger la vie en ligne des internautes. Cet effort s’est principalement concentré sur les outils de communication avec la généralisation de l’usage du chiffrement sur le web (désormais, plus de 90 % des échanges se font en HTTPS) et l’adoption en masse des messageries utilisant des protocoles de chiffrement de bout en bout. Cependant, toutes ces communications, bien que chiffrées, utilisent un protocole qui, lui, n’est pas chiffré par défaut, loin de là : le DNS. Voyons ensemble quels sont les risques que cela induit pour les internautes et comment nous pouvons améliorer la situation.

Surveillez la consommation énergétique de votre code

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

Être en mesure de surveiller la consommation énergétique de nos applications est une idée attrayante, qui n'est que trop souvent mise à la marge aujourd'hui. C'est d'ailleurs paradoxal, quand on pense que de plus en plus de voitures permettent de connaître la consommation instantanée et la consommation moyenne du véhicule, mais que nos chers ordinateurs, fleurons de la technologie, ne le permettent pas pour nos applications... Mais c'est aussi une tendance qui s'affirme petit à petit et à laquelle à terme, il devrait être difficile d'échapper. Car même si ce n'est qu'un effet de bord, elle nous amène à créer des programmes plus efficaces, qui sont également moins chers à exécuter.

Donnez une autre dimension à vos logs avec Vector

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

Avoir des informations précises et détaillées sur ce qu’il se passe dans une infrastructure, et sur les applications qu'elle héberge est un enjeu critique pour votre business. Cependant, ça demande du temps, temps qu'on préfère parfois se réserver pour d'autres tâches jugées plus prioritaires. Mais qu'un système plante, qu'une application perde les pédales ou qu'une faille de sécurité soit découverte et c'est la panique à bord ! Alors je vous le demande, qui voudrait rester aveugle quand l'observabilité a tout à vous offrir ?

Body