Php

Un article de Agora2ia.

(Redirigé depuis PHP)


php-med-trans-light.gif Logos page


Sommaire

Présentation

En bref

RasmusLerdorf et ZeevSuraski sont les pères fondateurs de ce langage de script.


PHP est une plateforme de développement informatique principalement dédiée au Web. Il est distribué via une licence propre qui permet sa rediffusion, son utilisation et sa modification librement et gratuitement.

PHP fonctionne sur :

  • Microsoft Windows (toutes versions supérieurs à windows 95),
  • toute version d’Unix/linux.
  • D’autres OS comme Macintosh X sont également des plateformes PHP.

PHP fonctionne avec Microsoft IIS, Apache, Netscape Enterprise Server et beaucoup d’autres serveurs web. La quasi totalité, en fait.

Voir aussi :


Extrait du livre blanc de l'AFUP

PHP (PHP : Hypertext Preprocessor) est à la fois un langage de programmation (comme Java ou C#) et une plate-forme globale d'entreprise (comme J2EE ou .NET).

En tant que langage, PHP possède deux syntaxes. La première, à michemin entre C et Perl, s'adresse aux développeurs à la recherche d'un langage de script simple à manipuler. Elle est adaptée à la couche présentation. La seconde, très proche de Java, permet de développer dans un paradigme orienté objet. Elle est adaptée au développement de logique métier ou de traitements complexes.

PHP permet de développer les types d'applications suivantes :

  • des applications web dynamiques (site web, intranet, etc.),
  • des « clients riche » (PHP-XUL)
  • des applications client-serveur (PHP-GTK et PHP4Delphi),
  • des services web (SOAP, XML-RPC, REST),
  • des scripts en ligne de commande (CLI),
  • des services s'exécutant en tâche de fond (gestion de quota disque,

serveur HTTP, etc.)

Développé par près de 700 ingénieurs regroupés au sein de la fondation Apache, PHP réunit autour de lui une communauté qui compte environ 500.000 utilisateurs. PHP est un logiciel libre distribué sous licence Apache Software Licence (ASL). Cette licence open source dite non virale protège les entreprises utilisatrices en ne les obligeant pas à publier leurs développements.

PHP est disponible pour l'ensemble des systèmes d'exploitation serveurs et clients courants : Windows toutes versions, Linux et Unix toutes versions, IBM iSeries (AS/400), SGI IRIX 6.5.x, RISC OS, Novell Netware, Mac OS X, AmigaOS, etc.


Les versions de PHP

  1. PHP 3
  2. PHP 4
  3. PHP 5
  4. PHP 6 : Tests de vitesse PHP 6 (21/04/2006)


Applications industrielles

Tips

L'inclusion de fichiers : require et include


Les sessions


Génération de document OpenOffice


Convertir des scripts en application Windows


On dirait de la logique floue dans MySql

Frameworks et librairies

Frameworks

12 frameworks PHP


RubyOnRails a pris le monde par surprise avec une approche évoluée des sites Web. Ce framework a inspiré de nombreux autres projets, et la communauté PHP a produit un bon nombre d'entre eux. h3rald vous propose une revue de chacun d'entre eux :

  • CakePHP
  • Symfony
  • PHP on Trax
  • Code Igniter
  • Biscuit
  • Pipeline


CakePHP

On peut lire sur le site officiel : There are many frameworks available for the PHP programming language nowadays, and especially a lot of RAD (Rapid Application Development) frameworks which aim to make web development faster, less tedious and more organized. CakePHP was one of the first frameworks to port the RAD philosophy - which became so popular after Ruby on Rails - to the PHP programming language. CakePHP v1.0 is now one of the most popular and intuitive solutions for PHP programming...

Divers


Ajax


IHM

  • Integration Flex 2.0 et PHP : Tutoriel d'intégration de Flex 2.0 avec PHP. Flex est la dernière technologie Flash pour réaliser des clients riches, type Ajax, en se basant sur les technologies flash.
  • Extension QT pour PHP : "PHP-Qt est une extension pour PHP5 qui permet d'écrire des applications avec Qt Toolkit. Il fournit une interface orientée objet avec le Framework Qt4 et permet d'écrire des applications Qt en PHP".
  • An Introduction to the Winbinder Library, Part 1
  • phpHtmlLib est une bibliothèque pour produire des fichiers HTML, XML, XHTML, WAP/WML et SVG en PHP.
  • APhPLIX est une trousse à outils pour constuire des applications Web dynamique, avec une interface graphique qui se rapproche des applications de bureau classiques. APhPLIX utilise DHTML, AJAX, DOM, Javascript et PHP pour créer cette interface.
  • Une liste des 10 bibliothèques utiles pour JavaScript, Ajax, PHP, Couleurs et CSS.


Persistance et mapping Relationnel/Objet

Il existe plusieurs couches d'abstraction d'ORM (Object Relation Mapping) en PHP. Les plus connues sont :


Gestion de contenu

Il s'agit ici de ContentManagementSystems ou CMS.


Gestion de document/fichier

PDF

DomPDF est une bibliothèque de conversion de document HTML standards en fichiers PDF. Elle supporte CSS 2.1 et la majorité des balises HTML 4.0. Elle fonctionne en lisant le code HTML produit ainsi que les fichiers CSS nécessaire, et en convertissant le tout en PDF, à l'aide de PDFlib ou de ezPDF. A l'aide de quelques paramètres GET, vous pouvez maintenant proposer le téléchargement PDF de vos pages Web.

Le développement : Plateforme et Méthodologie

Configuration PhpEclipse - EasyPhp - MySql - DBG Debugger

Inspiré de d'un article sur fil2blog

Voir http://www.developpez.net/forums/archive/index.php/ => PHP


La Plateforme

Packages

DBG Debugger

DBG Debugger


  1. Dézippez l'archive de DBG
  2. Copiez le dll du dossier i386 correspondant à votre version de PHP (pour moi 4.3.6) dans le dossier xxx /easyphp/php/extension/
  3. Renommez le : php_dbg.dll
  4. Modifier le <EasyPhp_HOME>/apache/php.ini :
    1. Mettre "implicit_flush" à "on"
    2. Ajoutez "extension=php_dbg.dll" aux extensions
    3. Ajoutez ces lignes entre 2 blocs avec des [ ] en titre (comme celui-ci) :
[debugger]
debugger.enabled = true
debugger.profiler_enabled = true
debugger.JIT_host = clienthost
debugger.JIT_port = 7869


Zend

...


Les IDE

Voir la liste des IDE de PhpIndex


PHPeclipse

Eclipse doit être installer

  • Dézippez PHPEclipse dans un répertoire temporaire
  • Copiez tout ce qu'il y a dans les répertoires features et plugin de PHPEclipse dans ceux de Eclipse
  • Vous pouvez éventuellement installer le pack de traduction français :
    • Dézippez le pack français (également dans un répertoire temporaire)
    • Copiez tout ce qu'il y a dans les répertoires features et plugin du pack dans ceux de Eclipse
  • Lancer Eclipse
  • Depuis le menu, choisir Window > Preferences > PHPEclipse > Project Defaults : Loacalhost = http://localhost:8080 (attention au port !)
  • Depuis le menu, choisir Window > Preferences > PHPEclipse > PHP > Installed Interpreters
  • Cliquer sur le bouton Add :
    • Interpreter Name = php.exe
    • Location = <EASYPHP_HOME>/php
    • Cliquez OK
  • N'oubliez pas de le cocher pour qu'Eclipse puisse l'utiliser.
  • Cliquez OK
  • Depuis le menu, choisir Window > Open Perspective > Other... > Debug
  • Depuis le menu, choisir Run > Debug... (vous etes dans le gestionnaire des configurations) :
    • Sur la gauche selectionnez "PHP Application" et cliquez sur "New" (si ce n'est pas déja fait).
    • Onglet "File" :
      • Donner un nom à la configuration de debug
      • Choisir le fichier à déboguer.
    • Onglet "Common", cocher les 2 boutons.

Le débogage est possible si le fichier selectionné est ouvert et est rigoureusement le même.

  • Mettez des points d'arrêt où vous en avez besoin
  • Dans la barre d'outil vous pouvez lancer le débogage.


La base de données

C'est MySql qui semble s'imposer...


Mobilité

  • Pocket HPH est un moteur compact pour PHP, conçu pour le faire fontionner sur les assistants mobiles. Le moteur n'est pas un port du Zend Engine, mais un moteur compatible avec PHP : il fait fonctionner une partie des fonctions traditionnelles de PHP5, et devrait convenir à la majorité des applications portées sur PDA. PocketHPH est actuellement en démo.

La Méthode

Quelques conseils


La Programmation par Aspects

Voir la page sur la ProgrammationOrienteeAspect pour une présentation générale...


AspectPHP


SimpleTest

  • Le fichier RunAll.test.php pour jouer automatiquement tous les tests (l'extension du fichier est importante en regard de la configuration du Test File Suffix de SimpleTest dans Eclipse) :
<?php
    class RunAll extends GroupTest {
        function RunAllTests() {
            parent::GroupTest();

            $files = array();
            $dirhandle = opendir(dirname(__FILE__));
            while ($file = readdir($dirhandle)) {
                if (substr($file, -9) == ".test.php" && "RunAll.test.php"!=$file) {
                    $this->addTestFile(dirname(__FILE__)."/".$file);
                }
            }
        }
    }
?>

PHPUnit


Intégration continue

Règles de codage


Rapports et audit de code


Automating Release Tasks

Créer son jeu

Ressources

La Documentation PHP

Des sites sur PHP

Des formations PHP