Symfony ExpressionLanguage : Comment utiliser ce composant ?
Le composant Symfony ExpressionLanguage : qu'est-ce que c'est ? Quand et comment l'utiliser ? Comment créer des expressions lors de cas plus complexes ?
Sommaire
Vim, derrière ce nom obscur se cache un éditeur de texte puissant en mode terminal. Pas besoin d'environnement graphique pour s'en servir.
Vim est un ancêtre parmi les éditeurs de texte. Il dérive de Vi, un éditeur écrit à l'époque où les systèmes d'exploitations graphiques n'existaient pas. Il s'est progressivement étoffé avec la coloration syntaxique et un langage qui lui est propre, VimScript, qui permet de le personnaliser pour en faire un vrai IDE.
Il y en a plusieurs :
Vous avez ouvert Vim sans terminer ce tuto et vous aimeriez savoir comment commencer à naviguer ? Voici quelques commandes.
Touches | Action |
---|---|
:q | Quitter |
:w | Write (sauver) |
:[command]! | Forcer la commande [command] |
[I] | mode Insert |
[Esc] | revenir au mode Normal |
[V] | mode Visuel (sélection de texte) |
/[expression] | rechercher [Expression] dans le fichier. Suivant [N], précédent [Maj]+[N]. |
:![cmd] | passer la commande [cmd] au shell |
H / J / K / L | gauche / bas / haut / droite |
Les commandes sont à lancer depuis le mode Normal. Il est possible de combiner des commandes, comme :
:wq!
Pour écrire le fichier puis forcer Vim à se fermer. Pour approfondir les commandes de bases et savoir comment éditer, remplacer, etc vous pouvez installer et lancer vimtutor :
sudo apt install vimtutor
Ce .vimrc activera la coloration syntaxique, les numéros de ligne, activera la souris, le retour automatique à la ligne et une indentation correcte. .vimrc est situé dans ~ (votre dossier personnel). C'est un fichier caché. Ouvrez-le avec vim :
sudo vi ~/.vimrc
Ajoutez-y ces lignes :
set nocompatible
syntax on
filetype plugin indent on
set mouse=a
set number
set laststatus=2 ignorecase smartcase hlsearch incsearch
" show existing tab with 4 spaces width
set tabstop=4
" soft tab width
set softtabstop=4
set shiftwidth=4
" 4 spaces tab
set expandtab
autocmd BufNewFile,BufRead *.ezt set filetype=html
" Vanilla key remapping PREVIOUS - NEXT
:nnoremap <C-n> :bnext<CR>
:nnoremap <C-p> :bprevious<CR>
" indentation made from visual mode
set smartindent
Installez Pathogen à l'aide de la commande suivante :
mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
Si vous ne deviez installer qu'un plugin, ce serait celui-là ! A tout moment vous saurez où vous vous situez. Installation :
cd ~/.vim/bundles
git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree
Rendez-vous ensuite dans votre .vimrc, situé sous ~/.vimrc (Debian / Ubuntu), et ajoutez :
"NERDtree auto refresh on file save
autocmd BufWritePost * NERDTreeFocus | execute 'normal R' | wincmd p
let NERDTreeShowHidden=1
" Close NERDtree if last buffer
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree")) | q | endif
Relancez Vim et admirez ! Pour passer de l'éditeur à NERDtree et vice-versa, il suffit de presser deux fois [W] en mode Normal. Lorsque votre curseur est sur un dossier ou fichier, appuyez sur [M] pour voir les actions disponibles.
Ce plugin fournit une autocomplétion basique s'appuyant sur ce que vous avez déjà saisi. Avant d'éditer .vimrc, lancez :
sudo apt-get install vim-gui-common
sudo apt-get install vim-runtime
# Install YCM
sudo apt install build-essential cmake python3-dev python2.7-dev
cd ~/.vim/bundle && git clone https://github.com/Valloric/YouCompleteMe
cd ~/.vim/bundle/YouCompleteMe
git submodule update --init --recursive
python3 install.py
Ensuite éditez le .vimrc avec ces lignes :
Pour plus d'informations sur YCM, regardez la doc de son créateur !
Dans votre shell :
git clone https://github.com/itchyny/lightline.vim ~/.vim/bundle/lightline.vim
Puis dans votre .vimrc, pour afficher la branche en cours :
" Display Git branch in status bar
let g:lightline = {
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ],
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]
\ },
\ 'component_function': {
\ 'gitbranch': 'gitbranch#name'
\ },
\ }
Dans votre shell, occupez-vous d'abord de ctags :
curl -Ss http://vim-php.com/phpctags/install/phpctags.phar > phpctags
cd your-project-folder
php ./phpctags
ctags -R --fields=+aimlS --languages=php
Toujours dans votre shell, vous pouvez aussi installer Gutentags pour gérer l'indexation/complétion "intelligente" du projet :
cd ~/.vim/bundle
git clone https://github.com/ludovicchabant/vim-gutentags.git
Installez le plugin PhpComplete :
cd ~/.vim/bundle
git clone git://github.com/shawncplus/phpcomplete.vim.git
Puis éditer .vimrc :
set omnifunc=syntaxcomplete#Complete
autocmd FileType php setlocal omnifunc=phpcomplete#CompletePHP
" setup vim tag file
set tags=tags;/
augroup MyGutentagsStatusLineRefresher
autocmd!
autocmd User GutentagsUpdating call lightline#update()
autocmd User GutentagsUpdated call lightline#update()
augroup END
Dans votre shell, saisissez :
cd ~/.vim/bundle/
git clone https://github.com/evidens/vim-twig.git
Et c'est fait !
N'hésitez pas à parcourir le site Vimawesome qui est une référence pour trouver des plugins adaptés à votre contexte de travail. Ce tutoriel utilise Pathogen comme gestionnaire de plugins.
Auteur(s)
Pierre Vermeil
Jeune développeur PHP Symfony, qui fait de la veille dans l'open source en général
Vous souhaitez en savoir plus sur le sujet ?
Organisons un échange !
Notre équipe d'experts répond à toutes vos questions.
Nous contacterDécouvrez nos autres contenus dans le même thème
Le composant Symfony ExpressionLanguage : qu'est-ce que c'est ? Quand et comment l'utiliser ? Comment créer des expressions lors de cas plus complexes ?
Découvrez comment réaliser du typage générique en PHP : introduction et définition du concept, conseils et explications pas-à-pas de cas pratique.
Découvrez un cas d'usage d'intégration d'un CRM avec une application e-commerce, en asynchrone, avec Hubspot et RabbitMQ