Symfony – Faire des recherches avec sfFinder

Vous vous êtes surement déjà demandé comment rechercher un fichier ou un répertoire dans votre projet Symfony, sachez qu’il existe une classe prévu pour ca : sfFinder.

La classe sfFinder

Comme nous l’avons dis la classe sfFinder permet de rechercher des fichiers ou des repertoires dans votre projet, voyons comment cela fonctionne :

$files = sfFinder::type('file')
    ->relative()
    ->maxdepth(0)
    ->in('/home/netha/mes_fichiers');

Dans cet exemple $files nous retournera un array contenant tous les noms ( relative() ) des fichiers ( type(‘file’) ) de votre répertoire /home/netha/mes_fichiers ( in(‘/home/netha/mes_fichiers’) ).
Il suffit ensuite d’exploiter les résultats avec une boucle foreach pour extraire les données de l’array.

foreach ($files as $file):
    echo $file;
endforeach;

Voyons maintenant un peu plus en détail les méthodes offertes par sfFinder :

  • type() : peut prendre la valeur file, dir ou any pour rechercher respectivement des fichiers, des répertoires, ou les deux.
  • relative() : si il n’est pas préciser sfFinder retournera l’emplacement complet du fichier/répertoire depuis la racine de votre serveur, sinon on obtient uniquement le nom du fichier/répertoire.
  • maxdepth() : il indique si sfFinder doit rechercher dans les sous répertoires. Si il est à 0 on reste dans le répertoire courant, à 1 on explore le premier niveau de sous répertoire, à 2 le deuxième et ainsi de suite…
  • in() : indique le répertoire dans lequel on fait la recherche, vous pouvez utiliser sfConfig::get() pour récupérer l’emplacement des répertoires de votre projet
Source : API Symfony

Aucun commentaire

Laisser un commentaire

Votre courriel ne sera jamais rendu public.Les champs marqués d'un astérisque (*) sont obligatoires