Phing - Première approche

Publié par Philippe VINCENT-ROYOL, le 12/07/2011 11:00 dans phing, php | 0 commentaires

Phing est un outil php, inspiré d'Apache Ant, visant à nous aider dans l'exécution de certaines tâches répétitives tout au long d'un cycle de vie de vos projets (construction de release, génération de doc, génération de rapport de tests unitaires, etc.)


Nous allons nous intéresser à l'installation, configuration et utilisation de Phing. Ceux voulant s'initier à Apache Ant, je vous conseille la documentation officielle que vous trouverez ici.

Pré-requis

Et oui Phing ne peut être utilisé n'importe comment. Voiçi les prérequis nécessaire:

  • PHP 5.2+
  • PHPUnit 3.4.0+ (fonctionnalité additionnelle)
  • Xdebug 2.0+ (fonctionnalité additionnelle)
  • PHP Documentator 1.4.0+ (fonctionnalité additionnelle)

Installation de Phing

Via pear

La méthode la plus simple est une installation via pear avec les commandes suivantes:

pear channel-discover pear.phing.info
pear install phing/phing

Pour mettre à jour

pear upgrade phing/phing

Installation manuelle

La dernière version actuelle est la 2.4.5. Vous pouvez la télécharger ici : http://www.phing.info/get/phing-2.4.5.tgz

A noter que votre php.ini doit avoir un memory_limit = 32M minimum !

Configuration des variables d'environnement

Unix

Modifier si nécessaire les deux premières lignes suivantes :

export PHP_COMMAND=/usr/bin/php
export PHING_HOME=/opt/phing
export PHP_CLASSPATH=${PHING_HOME}/classes
export PATH=${PATH}:${PHING_HOME}/bin

Windows

Idem pour windows :

set PHP_COMMAND=c:\opt\php\php.exe
set PHING_HOME=c:\opt\phing
set PHP_CLASSPATH=c:\opt\phing\classes
set PATH=%PATH%;%PHING_HOME%\bin

Construction d'un build.xml simple

Vous allez me dire, à quoi sert cette bête là ? Tout simplement à dire à Phing comment générer votre paquet de release par exemple. Regardez l'exemple suivant :

<?xml version="1.0" encoding="UTF-8"?>
    <project name="FooBar" default="dist">
    <!-- ============================================  -->
    <!-- Target: prepare                               -->
    <!-- ============================================  -->
    <target name="prepare">
        <echo msg="Création du dossier ./build" />
        <mkdir dir="./build" />
    </target>
    <!-- ============================================  -->
    <!-- Target: build                                 -->
    <!-- ============================================  -->
    <target name="build" depends="prepare">
        <echo msg="Copie des fichiers vers le dossier build..." />
        <echo msg="Copie du fichier ./about.php vers le dossier ./build ..." />
        <copy file="./about.php" tofile="./build/about.php" />
        <echo msg="Copie du fichier ./browsers.php vers le dossier ./build ..." />
        <copy file="./browsers.php" tofile="./build/browsers.php" />
        <echo msg="Copie du fichier ./contact.php vers le dossier ./build ..." />
        <copy file="./contact.php" tofile="./build/contact.php" />
    </target>
    <!-- ============================================  -->
    <!-- (DEFAULT)  Target: dist                       -->
     <!-- ============================================  -->
    <target name="dist" depends="build">
        <echo msg="Création de l'archive..." />
        <tar destfile="./build/build.tar.gz" compression="gzip">
            <fileset dir="./build">
                <include name="*" />
            </fileset>
        </tar>
        <echo msg="Les fichiers sont copiés et compressés dans le répertoire build!" />
    </target>
</project>

Il faudra bien entendu avoir créer les fichiers about.php, browsers.php et contact.php dans le même dossier que le build.xml. Rien de très compliqué dans le fichier xml :)

Pour lancer l'éxécution il suffit de taper :

phing

Allez plus loin ?

Je vous laisse lire la doc en anglais sur les possibilités qu'offre Phing (target, task, types, etc) ici. Et aussi un exemple bien poussé pour mettre à jour un projet via svn / ftp directement avec Phing ici.

Philippe VINCENT-ROYOL

Consultant et expert Technique chez eZ Systems France (http://ez.no/fr). Adepte de nouvelles technologies, photos, etc.

Commentaires

M'avertir des nouveaux commentaires
Texte anti-spam :*

Entrez les deux mots ci-dessous, avec ou sans espace.
Les lettres ne sont pas sensibles à la casse.
Une difficulté pour lire ? Essayer un autre

Se souvenir de moi

Catégories

Popular post

About us

Bonjour et bienvenue sur le Blog ! Vous atterissez sur une nouvelle version porté par le html5 et css3. Malheureusement pour les utilisateurs d'IE des bugs peuvent encore arriver. Mais n'hésitez pas à me les remonter par mail.

Très bonne visite et à bientôt !

Twitter update

Pas de nouveaux tweets...

Flux de photos

Contact

Location: Paris
Email: vincent.royol@gmail.com
Twitter: dspe
Copyright © 2013 Pheelit.fr ! All rights reserved. W3C standard website. Valid (x)html / css
by Philippe VINCENT-ROYOL