Up-to-date PHP syntax file (5.3 – 7.1 support)
Pull request Compare This branch is 130 commits ahead of vim-scripts:master.



This project is a fork of php.vim--Garvin which in turn is an update of the php.vim script which in turn is an updated version of the php.vim syntax file distributed with Vim. Whew!


If you don't have a preferred installation method, pathogen.vim is quick and simple. With pathogen.vim installed, run the following commands:

cd ~/.vim/bundle
git clone https://github.com/StanAngeloff/php.vim.git


  • g:php_syntax_extensions_enabled, g:php_syntax_extensions_disabled
    b:php_syntax_extensions_enabled, b:php_syntax_extensions_disabled

    A list of extension names (lowercase) for which built-in functions, constants, classes and interfaces is enabled / disabled.

Overriding Highlighting

Syntax highlighting can be configured to distinguish groups by overriding the defaults. For example, all code in PHP comments is highlighted as phpComment, however there are pieces you can tweak, e.g., how @tags appear. There are many groups you can choose from. Here is how you can override PHP @tags and $parameters in comments to appear in a different group:

" Put at the very end of your .vimrc file.

function! PhpSyntaxOverride()
  hi! def link phpDocTags  phpDefine
  hi! def link phpDocParam phpType

augroup phpSyntaxOverride
  autocmd FileType php call PhpSyntaxOverride()
augroup END

Overriding Highlighting


When you install php.vim using your preferred installation method, all the files needed are already in place.

The project comes with a Dockerfile which can be used to rebuild the syntax file.

docker build -t stanangeloff/php.vim .
docker run --rm -i -v "$PWD":/var/php -t stanangeloff/php.vim > /tmp/php.vim && cat /tmp/php.vim | sed 's/\x0D$//' > syntax/php.vim
docker rmi stanangeloff/php.vim