Quelles sont les lunettes de prescription non http://belgiquepharmacie.be/ Unie de liberté de santé oxford

Une des tâches les plus rébarbatives est bien l’ajout d’une licence d’utilisation à tous les fichiers sources de ses projets. Ajoutez à cela que, comme tout bon développeur, je n’aime pas répéter la même opération plus de deux fois, je me suis codé l’an dernier une tâche Phing pour automatiser cela1 : Header.

Présentation

Phing Header se découpe en deux tâches : HeaderTask et HeaderPhpTask.

La tâche HeaderTask permet d’ajouter un en-tête à n’importe quel fichier. Elle peut être comparée au paramètre imbriqué header de la tâche Concat d’Ant2.

Plus spécifique, la tâche HeaderPhpTask est à utiliser pour ajouter un en-tête aux fichiers PHP. Le tag PHP <?php précédera ainsi le contenu à concaténer ; le premier tag PHP étant supprimé.

Table des matières

  1. Présentation
  2. Téléchargement
  3. Installation
  4. Attributs
  5. Tags imbriquées supportées
  6. Exemples d’utilisation
  7. Licence
  8. Tâches à faire
  9. Historique des versions et changelog

Téléchargement

Vous pouvez également cloner le projet depuis son dépôt GitHub.

Installation

Si vous suivez la documentation de Phing, il vous faut copier le répertoire3 header contenu dans l’archive dans le dossier classes/phing/tasks/my de votre installation Phing.

Personnellement je préfère utiliser un chemin externe à l’installation de base de Phing. Pour ce faire, il suffit de créer l’arborescence phing/tasks/my à l’endroit désiré (par exemple /Library/WebServer/share/php) et de déclarer ce dernier via la propriété include_path de votre fichier php.ini. Ce qui nous donne ici :

include_path = ".:/Library/WebServer/share/php:/usr/local/php5/lib/php"

et l’arborescence suivante :

/Library/WebServer/share/php/
  `-- phing/
       `-- tasks/
            `-- my/
                 `-- header/
                      |-- HeaderPhpTask.php
                      `-- HeaderTask.php

Vous devrez déclarer ces nouvelles tâches à l’aide de la tâche Taskdef dans vos fichiers de build. Par exemple :

<taskdef name="header" classname="phing.tasks.my.header.HeaderTask" />

Attributs

Les tâches HeaderTask et HeaderPhpTask se partagent la liste d’attributs qui suit :

Nom Type Description Defaut Requis
file String Le chemin du fichier en-tête à charger. n/a Oui
eol String Préciser le caractère de fin de ligne. PHP_EOL Non
preservelastmodified Boolean Conserver la date de dernière modification de tous les fichiers. false Non
failonerror Boolean Stopper le processus à la première erreur survenue. true Non
verbose Boolean Activer le mode verbeu. false Non
encoding String Préciser l’encodage du fichier en-tête. UTF-8 Non
toencoding String Préciser l’encodage des fichiers de destination. UTF-8 Non

Caractères de fin de ligne valides

  • cr : un unique CR.
  • lf : un unique LF.
  • crlf : la paire CRLF.
  • mac : un unique CR.
  • unix : un unique LF.
  • dos : la paire CRLF.

La valeur par défaut est dépendante de la plateforme utilisée. Pour les système Unix, le caractère de fin de ligne par défaut est LF. Pour les systèmes de types DOS (incluant Windows), il s’agit de CRLF. Enfin, CR est la caractère utilisé par défaut sur les systèmes Mac OS.

Tags imbriquées supportées

Exemples d’utilisation

Ajouter un en-tête à un fichier PHP

<!-- load the header php task -->
<taskdef name="phpheader" classname="phing.tasks.my.header.HeaderPhpTask" />
 
<phpheader
    file="${project.basedir}/LICENSE"
    tofile="${project.basedir}/build/foo.php"/>
</phpheader>

Ajouter un en-tête à un ensemble de fichiers PHP

<!-- load the header php task -->
<taskdef name="phpheader" classname="phing.tasks.my.header.HeaderPhpTask" />
 
<phpheader file="${project.basedir}/LICENSE">
    <fileset dir="${project.basedir}/build">
        <include name="**/*.php" />
        <exclude name="**/foo*.php" />
    </fileset>
</phpheader>

Ajouter un en-tête encodé en ISO-8859-1 à un fichier encodé en UTF-8

<!-- load the header task -->
<taskdef name="header" classname="phing.tasks.my.header.HeaderTask" />
 
<header
    file="${project.basedir}/LICENSE"
    encoding="ISO-8859-1"
    tofile="${project.basedir}/build/foo.txt" />

Licence

Copyright (C) 2008 Mehdi Kabab, distribué sous licence LGPL version 3 ou supérieure.

Tâches à faire

Fonctionnalités en attente de développement.

  • [HeaderPhpTask] Optimiser la détection des tags PHP.
  • [Projet] Améliorer l’aspect POO.

Historique des versions et changelog

1.0

  • Version initiale.

Notes

  1. nous travaillons par conséquent sur des projets PHP. Cependant, la tâche est utilisable pour tout type de fichier non binaire. 

  2. la tâche Concat n’est malheureusement pas encore disponible dans Phing. 

  3. ou directement les fichiers HeaderTask.php et HeaderPhpTask.php. Il vous suffira d’adapter en conséquence le chemin d’accès lors de leur déclaration via taskdef

publicité (chargement)

Ajouter un commentaire


Syndication

Réseaux sociaux