Prettier PHP Plugin
WORK IN PROGRESS
Please note that this plugin is currently in alpha stage and still under active development. We encourage everyone to try it and give feedback, but we don't recommend it for production use yet.
Intro
Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
This plugin adds support for the PHP language to Prettier.
Input
array_map(function($arg1,$arg2) use ( $var1, $var2 ) {
return $arg1+$arg2/($var+$var2);
}, array("complex"=>"code","with"=>"inconsistent","formatting"=>"is", "hard" => "to", "maintain"=>true));
Output
array_map(
function ($arg1, $arg2) use ($var1, $var2) {
return $arg1 + $arg2 / ($var + $var2);
},
array(
"complex" => "code",
"with" => "inconsistent",
"formatting" => "is",
"hard" => "to",
"maintain" => true
)
);
Install
yarn:
yarn add --dev prettier @prettier/plugin-php
# or globally
yarn global add prettier @prettier/plugin-php
npm:
npm install --save-dev prettier @prettier/plugin-php
# or globally
npm install --global prettier @prettier/plugin-php
Use
If you installed prettier as a local dependency, you can add prettier as a script in your package.json
,
"scripts": {
"prettier": "prettier"
}
and then run it via
yarn run prettier path/to/file.php --write
# or
npm run prettier -- path/to/file.php --write
If you installed globally, run
prettier path/to/file.php --write
Editor integration
Atom
The official prettier plugin for atom supports plugins.
VScode
Regarding plugin support in the official plugin prettier-vscode see this issue.
Alternatively, install Run on Save and add the following section to your settings:
"emeraldwalk.runonsave": {
"commands": [
{
"match": "\\.php$",
"cmd": "prettier ${file} --write"
}
]
}
Vim
Regarding plugin support in the official plugin vim-prettier see this issue.
ALE
The linting plugin ALE has built-in support for prettier and its plugins. Just add prettier to your list of fixers. For example:
let g:ale_fixers={
\'javascript': ['prettier'],
\'json': ['prettier'],
\'php': ['prettier'],
\}
Custom
Alternatively, adding the following to .vimrc
will define a custom command :PrettierPhp
that runs the plugin while preserving the cursor position and run it on save.
" Prettier for PHP
function PrettierPhpCursor()
let save_pos = getpos(".")
%! prettier --stdin --parser=php
call setpos('.', save_pos)
endfunction
" define custom command
command PrettierPhp call PrettierPhpCursor()
" format on save
autocmd BufwritePre *.php PrettierPhp
Contributing
If you're interested in contributing to the development of Prettier for PHP, you can follow the CONTRIBUTING guide from Prettier, as it all applies to this repository too.
To test it out on a PHP file:
- Clone this repository.
- Run
yarn
. - Create a file called
test.php
. - Run
yarn prettier test.php
to check the output.
Maintainers
![]() Christian Zosel |
![]() Evilebot Tnawi |