2009-08-04 5 views
2

J'ai un fichier de construction phing qui vérifie la permission de certains fichiers en utilisant la tâche <tactile>. Il appelle un fichier externe (filesToCheck.txt) qui est juste une liste de différents emplacements de fichiers. Cela fonctionne bien. Mais cela m'empêche de réutiliser la même liste dans mon code PHP quand je veux accéder à un fichier particulier basé sur une certaine clé du même fichier externe (filesToCheck.txt). J'ai regardé la documentation de Phing mais je n'ai trouvé aucune tâche de tableau. Est-ce que quelqu'un sait d'un travail autour ou crée une nouvelle tâche la seule solution pour gérer une propriété de tableau dans Phing?Propriété de tableau dans Phing

Répondre

0

Vous pourriez probablement créer simplement une tâche ad-hoc comme une solution rapide-n-sale, ou votre propre tâche pour être un peu plus robuste à ce sujet. J'ai moi-même utilisé Phing pendant un certain temps et rien ne me saute aux yeux comme une alternative à l'écriture de soi-même.

3

J'ai fini par créer une tâche ad-hoc car la tâche tactile n'était pas le moyen le plus efficace de vérifier les autorisations de fichiers. PHP touch ne fonctionne pas comme prévu pour les fichiers si l'utilisateur n'est pas le propriétaire du fichier.

Telle est la tâche ad hoc, je suis venu avec:

  <adhoc-task name="is-file-writeable"> 
      <![CDATA[ 

      class IsFileWriteableTest extends Task 
      { 
       private $file; 

          function setFile($file) 
       { 
        $filesArray = parse_ini_file('filesToCheck.ini'); 
        $this->files = $filesArray; 
       } 

       function main() 
       { 
        foreach ($this->files as $fileName => $fileLocation)  
        { 
         if (!is_writable($fileLocation)) 
         {  
          throw new Exception("No write permission for $fileLocation"); 
         } 
        } 
       } 
      } 
      ]]> 
      </adhoc-task> 

      <target description="list of files to check permission" name="files-to-test"> 
      <is-file-writeable file="/path/to/filesToCheck.ini" /> 
      </target>