Path et url

Un article de OviWiki.


Sommaire

bab_Path

bab_Path est un objet permettant de manipuler un chemin

Inclure le fichier pour utiliser l'API :

include_once $GLOBALS['babInstallPath'].'utilit/path.class.php';


bab_Path::isAbsolutePath($path)

Tester si un chemin est absolu

Utilisation de l'objet

l'objet bab_Path peut prendre un nombre indéfini de paramètre lors de sa création, il permet de créer un chemin a partir de la chaine de caractère d'un ou plusieurs chemins

exemple :

$path = new bab_Path('www/html/ovidentia');

avec cet autre exemple, on obtendra le même résultat :

$path = new bab_Path('www','html/ovidentia');

isAbsolute()

tester si le chemin de l'objet est absolu, la méthode retourne un booléen.


isFolderWriteable()

Tester de manière très poussée si il est possible d'écrire dans le répertoire.

Cette méthode à été crée afin de palier aux problèmes des installations de PHP sur des plateformes windows avec IIS car dans ce cas la méthode is_writable de php ne fonctionne pas, la méthode retourne un booléen mais aussi deux types d'exceptions :

  • Exception : dans le cas ou la demande ne peut être traitée (le répertoire n'existe pas ou il pointe vers un fichier)
  • bab_FolderAccessRightsException : quand le problème rencontré concerne les droits d'accès

Dans le cas ou la méthode renvoie false, une exception sera toujours levée.

Il faut utiliser cette méthode le moins souvent possible car elle est beaucoup plus lente que la fonction is_writable de php. Pour déterminer si on peut écrire réellement dans répertoire cette méthode effectue des tests de création et de suppression de fichiers et de répertoires.

isWritable()

Image:warning.png Cette méthode est disponible à partir de Ovidentia 7.3.0

Tester si le fichier ou le répertoire est accessible en écriture. Si le chemin est un répertoire, c'est la méthode isFolderWritable qui sera utilisée.

getBasename()

Image:warning.png Cette méthode est disponible à partir de Ovidentia 7.3.0

le nom du fichier ou du répertoire (le dernier élément du chemin).


pop() et push()

pop() permet de retourner le dernier répertoire du chemin, et de raccourcir le chemin d'un élément

push('folder') permet d'ajouter le répertoire folder à la fin du chemin

createDir()

Cette méthode essai de créer le répertoire sur le disque

tostring()

Retourne le chemin sous la forme d'une chaîne de caractères


Iterateur

Image:warning.png Cette fonctionnalité est disponible à partir de Ovidentia 7.3.0

Il est possible d'utiliser l'objet bab_Path en tant qu'iterateur pour parcourir les fichiers et répertoires. Chaque éléments retournés par l'iterateur serons des objets bab_Path.


orderAsc()

permet d'ordonner les résultats de l'iterateur. On peut cumuler plusieurs ordres de tris. La méthode peut prendre en paramètre les constantes suivantes :

  • bab_Path::BASENAME : ordonner par nom de fichier ou répertoire
  • bab_Path::ISDIR : ordonner les répertoire puis les fichiers
  • bab_Path::CTIME : ordonner par date de création du fichier
  • bab_Path::MTIME : ordonner par date de modification du fichier
  • bab_Path::ATIME : ordonner par date de dernier accès au fichier

exemple :

ordonné par noms avec les répertoires en premier

$path = new bab_Path('/var/www');
$path->orderDesc(bab_Path::ISDIR)->orderAsc(bab_Path::BASENAME);
 
foreach($path as $item) {
	echo $item->getBasename()."\n";
}


orderDesc()

permet d'ordonner les résultats de l'iterateur en ordre inverse, le fonctionnement est identique à celui de orderAsc()

bab_url

bab_url est un objet permettant de manipuler une adresse url.

Inclure le fichier pour utiliser l'API :

include_once $GLOBALS['babInstallPath'].'utilit/urlincl.php';


bab_url::mod($url, $param, $value)

Cette méthode statique permet de modifier ou ajouter un paramètre dans une url

  • $url : adresse à modifier
  • $param : nom du paramètre de l'url à créer ou à modifier
  • $value : valeur du paramètre qui peut être une chaine de caractères ou un tableau multidimensionnel

la méthode retourne la nouvelle url modifiée

bab_url::request()

cette méthode permet de créer une url en fonction du contexte de la requête en cours. Un nombre indéterminé de parmètre peuvent être indiqués, ils correspondent aux noms des parmètre reçus dans _GET ou _POST lors de la requête sur le serveur web.

exemple :

echo bab_url::request('tg','idx');

bab_url::request_gp

Cette méthode crée une url a partir de tout les paramètres reçus dans _POST et _GET combinés

bab_url::get_request()

Créer un objet bab_url à partir des paramètre de la requête en cours, c'est le même fonctionnement que la méthode request() mais un objet bab_url est retourné.

bab_url::get_request_gp()

Créer un objet à partir de tout les paramètres de la requête en cours.

Utilisation de l'objet

Il existe 3 possibilités pour créer un objet bab_url :

  • $obj = new bab_url($url);
  • $obj = bab_url::get_request(); : l'url est construite a partir des noms paramètres de la requête passés en paramètres à la méthode get_request()
  • $obj = bab_url::get_request_gp(); : l'url est construite a partir de tout les paramètres de la requête en GET et en POST

Sur l'objet, il est possible d'ajouter et de modifier les paramètres en utilisant les propriétés :

exemple :

$obj = bab_url::get_request('tg');
$obj->idx = 'edit';
$obj->id_article = 2;
$url = $obj->toString();


location()

La méthode location ajoute un header HTTP "location" puis termine le script.

Exemple :

bab_url::get_request('tg', 'idx')->location();

Cet exemple construit une url à partir de tg et idx puis redirige l'utilisateur dessus.

toString()

La méthode toString renvoi la chaine de l'url