Php
Un article de Agora2ia.
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 :
- Le livre blanc PHP en entreprise de l'AFUP.org
- La page sur MySql.
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
- PHP 3
- PHP 4
- PHP 5
- 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
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
- Le site officiel : http://cakephp.org/
- 21 conseils pour 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 :
- PEAR,
- PhpDoctrine,
- MDBB,
- EZPDO,
- Propel,
- Metastorage
Gestion de contenu
Il s'agit ici de ContentManagementSystems ou CMS.
Gestion de document/fichier
- http://www.lbb.org/script/Php/Gestion_fichiers/index.php
- Philex (phile 'file' explorer) is a web content manager based php
- MyDMS est un système de gestion de documents open-source basé sur PHP et MySQL et édité sous GPL.
- Drop Bocks
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
- EasyPhp.org
- Wampp est la version Windows de Xampp - Xampp pour Windows
- AppServ
DBG Debugger
- Dézippez l'archive de DBG
- Copiez le dll du dossier i386 correspondant à votre version de PHP (pour moi 4.3.6) dans le dossier xxx /easyphp/php/extension/
- Renommez le : php_dbg.dll
- Modifier le <EasyPhp_HOME>/apache/php.ini :
- Mettre "implicit_flush" à "on"
- Ajoutez "extension=php_dbg.dll" aux extensions
- 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
- 10 conseils pour accélérer la publication des pages Web
- Developing PHP Applications for IBM Data Servers [PDF ] et la news sur Nexen.net.
- 5 vulnérabilités courantes des applications Web :
- Injections de code distant
- Injections SQL
- Variables non filtrées
- XSS
- Obtention des noms d'utilisateurs
- RAD PHP : développement rapide avec PHP
La Programmation par Aspects
Voir la page sur la ProgrammationOrienteeAspect pour une présentation générale...
SimpleTest
- Le site officiel
- Les articles de :: onpk :: sur php / simpletest
- Installation et configuration de SimpleTest pour Eclipse : cf le readme.html
- Download : http://sourceforge.net/projects/simpletest/
- Il faut ajouter un autre plugin "bidon" pour que SimpleTest soit pris en compte.
- Comme Test File Suffix j'ai mis : .test.php
- 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
- Even More Work on Reporting in PHPUnit 3 : repoting et couverture de code.
Intégration continue
- Continuous Integration for PHP via PHPUnit
- Selenium + Simpletest : Selenium # Première sortie de Selenium IDE
Règles de codage
Rapports et audit de code
Automating Release Tasks
Créer son jeu
- Comment creer son jeu en PHP ?
- Casid21 : un Black Jack en PHP, MySql et Ajax pour égayer un site Web.
- php games et la news sur Nexen.net
Ressources
La Documentation PHP
- Télécharger sur Php.net dans toutes les langues et tous les formats.
- Extended CHM Format en anglais
- Sur Nexen, le site francophone.
Des sites sur PHP
Des formations PHP
- Depuis 2001 Anaska forme sur PHP MySQL et propose actuellement 6 formules "formation PHP" pour tous les niveaux.
Catégories: Langage | Php | Eclipse