PHP, un langage pour construire des pages Web sur le serveur
Un script PHP produit des pages HTML, et peut être imbriqué
à l'intérieur de code HTML, comme JavaScript mais fonctionne
sur le serveur. Un script PHP peut être utilisé localement.
Il ressemble au C, et aux langages de scripts d'Unix.
PHP a été conçu en 1993 par Rasmus Lerdorf parce qu'il avait besoin lui-même d'un outil gratuit pour programmer des pages Web et le distribue en source libre sous le nom PHP/FI, Personal Home Pages/Form Interpreter.
"Je n'avais jamais pensé en écrivant PHP qu'un jour des millions de personnes regarderaient mon code par dessus mon épaule. Si j'avais imaginé cela, j'aurais sûrement fait certaines choses différemment." - Rasmus Lerdorf, 2012.
Il le développera ensuite avec l'aide de plusieurs
programmeurs qui écrivent un nouveau moteur pour PHP 3 et lui donnent
le nom de PHP Hypertext Processor en 1997. Les acronymes récursifs sont à la mode, avec GNU is Not Unix, PNG is Not GIF, etc... En 1999 le moteur Zend est créé
pour PHP 4.
Après avoir travaillé chez Yahoo!, Rasmus Lerdorf a été employé par WePay puis Etsy.
PHP 5 est apparu en 2004, il est orienté objects et supporte XML.
Un serveur doit être configuré pour exécuter l'interpréteur
sur les pages ayant l'extension .php, et envoyer les pages HTML modifiées
sur le réseau.
PHP est le P dans l'architecture populaire LAMP qui inclut le système
d'exploitation Linux, le serveur Apache et la base de données MySQL.
Il existe un projet pour porter PHP sous .NET appelé Phalanger.
Caractéristiques de PHP
- Toutes celles du C, sauf les variables typées.
- Orienté objets.
- Variables dynamiques préfixées par $.
- Tableaux associatifs (tables à clés de recherche).
- Le construct foreach pour scanner les tableaux.
- Dispose d'ne quantité énorme de fonctions dediées au Web et aux bases de données.
Syntaxe
Le langage n'est pas sensible à la casse.
Les variables sont préfixée par le symbole $ et aucun type
n'est spécifié.
Les chaînes litérales comprises entre "" sont évaluées
pour les code spéciaux et les variables.
Quelques symboles
<?php et ?> doivent enclore un programme PHP.
# ou // démarrent un commentaire.
array( "1" =>" "a, ...) est un dictionaire.
Structures de contrôle
La structure if dispose des options elsif et else.
if(x < 10)La structure while:
{ echo "$x inférieur à 10\n"; }
else { echo 'etc...\n' }
while(expr)
{
...
}
Fonction ou méthode
La définition d'une fonction commence par le mot-clé function, suivi
du nom et la liste des arguments séparé par des virgules,
et le corps est enclos entre { et }.
Le mot-clé return dans le corps de la définition permet
de retourner une valeur.
function nomfonc( arguments )
{
...instructions...
return(x);
}
Classe
class nom
{
...
}
Le corps est similaire au code global.
Serveur local
Pour fonctionner localement, et notamment pour la mise au point du code, il faut installer un serveur et ensuite exécuter le script avec le préfixe http://localhost.
Depuis la version 5.4, cela devient superflu car un serveur local est inclut dans la distribution. On lance le serveur avec cette commande:
$ php -S localhost:1000
Ou 1000 est le numéro du port (c'est un exemple). L'avantage par rapport aux solutions comme Wamp est qu'il n'est pas nécessaire de transférer les fichiers dans un répertoire spécifique, le www en l'occurence. Les scripts et pages PHP fonctionnent là où elles se trouvent.
Exemples de code
Afficher les lettres d'un texte.
$str = "demo";
$len = strlen($str);
for($i = 0; $i < $len; $i++)
{
echo $str[$i];
}
Afficher les éléments d'un tableau.
$arr = array(1,2,3 );
$arr = array_merge($arr, array( 4,5));
$sub = array_slice(|$arr, 1,3);
foreach($sub $as $num)
{
echo $num;
}
>> doit afficher: 234
Pourquoi utiliser PHP? L'expérience utilisateur
PHP est un outil Internet fonctionnant sur le serveur pour exécuter
des scripts, ou créer ou modifier des pages Web dans lesquels il
est inclus.
Il convient pour traiter des données importantes coté serveur,
et construire des pages HTML affichant les résultats (JavaScript
convient pour modifier dynamiquement les pages coté navigateur).
PHP 5 est un concurrent à Java en plus simple, comme serveur d'application
et constitue une plateforme pour les applications et services Web.
PHP est le langage le plus utilisé pour réaliser des CMS,
les systèmes de gestion de contenu.
Le langage a été développé au jour le jour, pour ajouter les fonctions dont on avait besoin, sans plan bien défini. En conséquence il manque de consistence, de règles bien définies, et on doit se référer constamment au manuel pour retrouver notamment les paramètres d'une fonction.
Par exemple la fonction substr_replace à pour arguments la chaîne de départ suivie de la partie à remplacer et la chaîne de remplacement, alors que la fonction str_replace a pour arguments la partie à remplacer et la chaîne de remplacement suivies de la chaîne de départ.
PHP 6 (en fait PHP 5.x)
Le projet PHP 6 qui devait utiliser le format d'encodage Unicode a été abandonné. Mais certaines fonction prévue dans le projets sont ou seront incorporées dans PHP 5.
- Les espaces de noms.
- XMLReader. Pour lire des fichiers XML en mode Sax progressif.
- XMLWriter.
- goto, la directive du langage Basic réapparaît.
- Fonctions lambda ou closures (sans nom).
- Extension filefinfo, pour le système de fichier.
- Phar. Permet de placer une application PHP dans un seul fichier exécutable, comme on le fait en Java avec les .jar.
- Intl. Internationalisation.
- Les opérateurs continue et break ne pourront fonctionner qu'avec des constantes ou sans paramètre.
- La fonction ereg() pour les expressions régulières sera supprimée. Il faudra la remplacer par preg_match() dont le format est différent mais plus généralement utilisé.
- La compatibilité avec d'anciens formats comme GD 1 et Freetype 1 sera supprimée.
- Magic_quotes, une propriété très décriée car source de failles de sécurité ne sera plus supporté.
- Il en est de même pour register_global, safe_mode et register_long_arrays.
Il faudra donc modifier les applications présentes pour les rendre compatibles. - Les balises <?php ?>, sont les seules reconnues.
- dl() pour charger une librairie dynamique est désactivé.
Optimiser PHP: Google vs. L'équipe de PHP
Les techniciens de Google donnent des conseils aux Webmasters pour optimiser le code des pages et des scripts.
Un de ces articles concerne PHP et indique en plusieurs points comment modifier le code, remplacer des structures de contrôle, pour l'optimiser au mieux.
Mais du coté des créateurs du language, on s'insurge et on conteste cette analyse. Cette polémique est intéressante pour les webmasters qui utilisent le PHP sur leur site, car elle fournit des précisions utile sur l'optimisation du code.
-
Copier des variables ou non?
En fait PHP optimise l'assignation et la valeur des variables n'est physiquement copiée que quand elle change. -
Guillemets simples ou doubles?
Celà ne fait pas de différence. Même s'il y a des variables à interpréter dans les chaînes entre double guillemets, ce n'est pas plus long qu'en concaténant des variables et des bouts de chaîne. -
Echo ou print?
La vitesse d'exécution est similaire mais dans certains cas, cela peut dépendre de la configuration du serveur.
(La question de la vitesse, précisons le, est utile quand on génère des pages à partir de commandes en PHP.) -
Switch/case ou if/else?
Là encore, utiliser l'un ou l'autre ne fait pas de différence car le code interne est le même.
Le seul point sur lequel les deux parties sont d'accord, c'est qu'il vaut mieux migrer vers la dernière version de PHP, car c'est toujours la plus rapide.
Outils et tutoriels
Editeurs gratuits
- Aptana Studio
Inclut un éditeur PHP. (Windows) - Eclipse IDE
Extension à Eclipse pour une IDE PHP. - NetBeans
IDE de Sun en Java pour PHP et autres langages. - CodeAnywhere. (Anciennement PHPAnywhere).
Editeur en ligne.
Aides au développement
- EasyPHP
Une installation complète et facilitée, avec Apache, pour programmer en local. - HipHop PHP Compiler
Un compilateur JIT créé et utilisé par Facebook, disponible sur GitHub avec le code source. Fonctionnant avec la machine virtuelle HHVM il est 60% plus rapide que l'interpréteur de Zend. Le JIT est destiné à remplacer un compilateur HPHPC qui produit du C++ puis du code binaire. - Xampp Server ou Wamp Server
Un autre serveur local Windows Apache Linux PHP. Placez vos scripts PHP dans le sous-répertoire htdocs du répertoire d'installation de Xampp ou www pour Wamp et ils pourront fonctionner comme sur un vrai serveur, avec des requêtes MySQL et PhpMyAdmin ou SQLite Manager pour l'administration des bases de données! - Xdebug
Debogueur interactif pour PHP. - Winbinder
Extension pour créer des interfaces graphiques natives à Windows.
Scripts et tutoriels
- Tutoriel SQL avec PHP et MySQL.
Apprendre à réaliser des scripts PHP pour utiliser SQL sur un site Web, avec des exemples. - Informations techniques. A l'intérieur du code PHP.
- JavaScript dans PHP. Comment intégrer le compilateur V8 au langage PHP.
Sites
- Php.net
Le site officiel, où trouver un exécutable et les sources. - Répertoire
PHP
La catégorie PHP sur le répertoire Dmoz. - PHP France
Forum en français. - PHP Index
Actualité PHP et forum pour résoudre vos problèmes.
Quel est le meilleur éditeur PHP?
Fodart
webmaster

