· Il centralise les informations de build dans un seul
fichier :
Toutes les informations dont Phing a besoin pour fonctionner
sont rassemblées dans le fichier build.xml. Toutes les tâches que
l'on souhaite réaliser y seront décrites. Il est possible de
construire des groupes de tâches (appelés targets)
réutilisables. Le fichier build.xml est suffisamment verbeux pour
être, lors de sa lecture, compréhensible sans connaissance
préalable par un autre développeur.
· Il fonctionne sur toutes les plateformes où PHP
est disponible :
Phing est codé en PHP. Il est donc l'utilisable
dès lors que PHP est installé sur le système.
· Il supporte un grand nombre d'outils PHP :
Il existe un grand nombre d'applications destinées
à améliorer l'écriture du code PHP. Elles ont
l'inconvénient de ne pas suivre les mêmes conventions ou la
même logique. Phing intègre des tâches dédiées
à certaines d'entre elles. Ces tâches sont normalisées et
suivent une logique commune. Ce canevas est utile pour paramétrer,
efficacement et avec un minimum d'effort, chacune d'entre elles sans sacrifier
pour autant les possibilités de réglages avancés.
· Il est documenté :
La documentation est d'excellente qualité et
détaille avec précision le rôle et la configuration de
chaque tâche. Que celle-ci fasse partie du noyau de Phing ou soit
rattachée à un outil externe, vous trouverez fréquemment
des exemples clairs et concis.
· Il est extensible :
On peut étendre Phing pour y ajouter de nouvelles
tâches. Ainsi on pourra utiliser nos propres outils irremplaçables
ou non implémentés. Le système d'extension est
documenté. La documentation officielle a un chapitre entier
détaillant les possibilités, proposant des gabarits pour
travailler et expliquant pas-à-pas le processus de conception d'une
nouvelle tâche.
· Il facilite la mise en place d'un processus
d'intégration continue :
Il est utilisable avec la plupart des outils
dédiés à l'intégration continue : Cruise control,
Hudson, Xinc...
II.4.2 Outils utilisables avec
Phing
Type d'opération
|
Application(s) externe(s)
nécessaire(s)
|
Description
|
Couverture du code par les tests
|
PHPUnit et Xdebug
|
Pour utiliser cette fonction, PHPUnit et Xdebug sont
nécessaires. Cet outil génère un rapport sur la couverture
de votre code par les tests unitaires. Vous pouvez créer un rapport sur
quelques fichiers, par module ou sur l'application complète.
|
DbDeploy
|
Non
|
Cet outil intégré à Phing facilite la
migration et l'évolution des bases de données de vos projets.
|
Exécuter une commande console
|
Non
|
Vous pouvez exécuter une commande Shell à partir
de Phing. Cette fonctionnalité est intéressante lorsque l'outil
que vous souhaitez appeler n'a pas de tâche associée. Utilisez des
commandes aussi simples que possible. Dans l'idéal, ne cassez pas le
support multiplateforme. SVN est un très bon exemple où cette
fonctionnalité est indispensable. N'oubliez pas de gérer les
erreurs.
|
FtpDeploy
|
Non
|
Phing peut prendre en charge le déploiement de votre
application sur différents serveurs en utilisant le protocole FTP.
|
Ioncube Encoder
|
Ioncube Encoder
|
Cet outil commercial rend illisibles vos scripts PHP et en assure
la protection par licence.
|
JsLint
|
JsLint
|
Cet outil analyse le code JavaScript pour vérifier
l'usage des bonnes pratiques de développement.
|
JsMin
|
Non
|
JsMin est une application externe embarquée dans Phing.
Vous n'avez donc pas besoin de l'installer. Cet outil minimise la taille d'un
fichier JavaScript.
|
Outils XML
|
Non
|
Phing peut valider un ou plusieurs scripts XML à l'aide
d'un schéma XSD et transformer un fichier XML en utilisant une feuille
de style XSL.
|
PEAR Packager
|
Non
|
Phing crée un fichier XML permettant de déployer
votre application au moyen de PEAR (supporte la version 1 et la version 2 de
PEAR)
|
Phar Packager
|
PECL's Phar
|
Cet outil crée un package Phar. Tous les fichiers PHP
d'une application sont rassemblés en un seul fichier. Un package Phar
est utilisable dans PHP depuis la version 5.3. Ces packages sont
optimisés pour améliorer la vitesse d'exécution des
scripts.
|
Php_CodeSniffer
|
Php_CodeSniffer
|
Cet outil effectue une analyse statique de vos scripts pour
vérifier qu'ils respectent les conventions de code que vous avez
définies (PEAR, Zend, vos propres conventions...).
|
PhpCpd
|
phpCpd
|
PHP Copy/Paste detector est un script simple qui recherche les
lignes de code dupliquées dans vos fichiers PHP.
|
PhpDocumentor
|
PhpDocumentor
|
Cet outil génère la documentation de votre API
à partir des commentaires phpdoc écrits dans vos scripts. Vous
pouvez aussi compiler des tutoriels ou des articles à partir de
documents docbook.
|
phpLint
|
phpLint
|
Cet outil est un analyseur statique de code. Il vérifie
les erreurs les plus communes en PHP (par exemple, l'emploi de fonctions
déconseillées ou l'utilisation des short tags).
|
PHPUnit
|
PHPUnit
|
Vous pouvez exécuter vos tests unitaires et
générer un rapport résumant leur exécution.
|
Scp
|
Non
|
Scp est une fonction permettant de copier un fichier au
travers du protocole
SSH.
Vous pouvez déployer intégralement une application en utilisant
le protocole SSH à place du protocole FTP.
|
SVN
|
VersionControl_SVN
|
Phing supporte les opérations Subversion (en
abrégé SVN) checkout, commit, export et update. Vous pouvez
interagir avec un serveur de version SVN. On regrettera l'absence de certaines
commandes SVN (merge, import...). Vous pouvez exécuter SVN en utilisant
la tâche ExecTask qui permet d'exécuter une commande dans le Shell
de l'OS.
|
Zend code analyseur
|
Zend Code Analyseur
|
Zend code analyseur est livré avec Zend studio. C'est
un analyseur de code statique qui repère les erreurs les plus courantes
dans du code PHP.
|
Zip & Tar
|
Archive_Tar (pour les fichiers tar seulement)
|
Vous pouvez créer des archives compressées ou
décompresser des archives existantes au format Tar ou Zip.
|
Tableau 2 : liste des outils utilisables avec
Phing
Chapitre III. DEPLOIEMENT
AUTOMATISEE
DE LA BASE DE
DONNEES
|