Vim, PHP et les espaces de noms dans Symfony

Travailler avec les espaces de noms est utile mais dans vim, il faut manuellement les insérer. Cependant, il existe un outil qui s’appuie sur ctags pour traiter le problème : vim-php-namespace. Après avec généré le fichiers de tags, vous aurez la possibilité d'ajouter le "use" nécessaire à l'utilisation d'une classe grâce à un bind déclenché sur le nom d'une classe. Si plusieurs espaces de noms correspondent à votre classe, il va vous les proposer et à vous de choisir celui qui convient.

Vim

Il ne reste plus qu'à traiter un problème : ajouter le "namespace" d'une classe qu'on est en train d'éditer. Je n'ai pas chercher de plugin pour le faire et je me suis contenté d'écrire un bout de script shell pour m'en sortir.

#!/bin/sh

FILE=$1

if [ -z "$FILE" ]; then
	echo "namespace \\"
	exit
fi

DIR=$(dirname "$FILE")
NAMESPACE=$(echo /$DIR | sed 's,/[a-z0-9][^/]*/,,g;s,/,\\,g')

echo "namespace $NAMESPACE;"

Il suffira de le déclancher avec un bind (map) du type :

map <F7> :r!/path/to/namespace %<CR>

Il va générer le code php à insérer en s'appuyant sur l'arborescence où apparait le fichier :

$ namespace src/Deblan/Bundle/BlogBundle/Controller/DefaultController.php
namespace Deblan\Bundle\BlogBundle\Controller;

Simon Vieille

Cet article a été rédigé par Simon Vieille, développeur français animé par la culture du libre et du hacking.

Il intervient à Tinternet & Cie, une association d’éducation numérique populaire. Depuis septembre 2022, il est lead developer à Trinaps, un opérateur télécom local et indépendant.


Ajouter un commentaire

Votre commentaire - Vous pouvez utiliser du markdown

Renouveler