Ajax HTML 5 JavaScript Création site CMS Comment Design Logiciels Programmation RSS SQL Scripts Mobiles
Algorithmes
Liste des algorithmes
Etonnants algorithmes
Eratosthènes
Langages
Liste des langages
Histoire
Logiciels et scripts

PHP, un langage pour construire des pages Web sur le serveur

Le langage de programmation PHP

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)
{ echo "$x inférieur à 10\n"; }
else { echo 'etc...\n' }
La structure while:
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.

  1. Les espaces de noms.
  2. XMLReader. Pour lire des fichiers XML en mode Sax progressif.
  3. XMLWriter.
  4. goto, la directive du langage Basic réapparaît.
  5. Fonctions lambda ou closures (sans nom).
  6. Extension filefinfo, pour le système de fichier.
  7. Phar. Permet de placer une application PHP dans un seul fichier exécutable, comme on le fait en Java avec les .jar.
  8. Intl. Internationalisation.
  9. Les opérateurs continue et break ne pourront fonctionner qu'avec des constantes ou sans paramètre.
  10. 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é.
  11. La compatibilité avec d'anciens formats comme GD 1 et Freetype 1 sera supprimée.
  12. Magic_quotes, une propriété très décriée car source de failles de sécurité ne sera plus supporté.
  13. 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.
  14. Les balises <?php ?>, sont les seules reconnues.
  15. 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.
Forum

Quel est le meilleur éditeur PHP?

26-01-2009 19:04:41

Fodart

Il existe une quantité d'éditeurs pour PHP, mais je voudrais savoir si quelqu'un connaît un éditeur PHP avec auto-complétion et tout ce que l'on trouve sur les éditeurs modernes... Je travaille sous Windows, mais quelquefois aussi sous Linux.
28-01-2009 14:47:48

webmaster

Sun a décidé d'étendre son IDE NetBeans à d'autres langages que Java, et notamment PHP, JavaScript et C++. Ce qui fait que l'on dispose avec ce logiciel, gratuit précisons-le, d'un éditeur très complet, intégrant même un serveur au choix pour tester les scripts PHP hors ligne! C'est probablement le plus complet. Il fonctionne sous Windows et Linux.
Tweet
© 2006-2013 Scriptol.fr