Skip to content

Instantly share code, notes, and snippets.

@mpalourdio
Created November 12, 2014 21:24
Show Gist options
  • Select an option

  • Save mpalourdio/46f792347cf9d46b121c to your computer and use it in GitHub Desktop.

Select an option

Save mpalourdio/46f792347cf9d46b121c to your computer and use it in GitHub Desktop.
@fabpot php-cs-fixer config for PhpStorm
parameters
--level=psr2 --verbose fix $FileDir$/$FileName$
working directory
$ProjectFileDir$
@bvarent

bvarent commented Jan 6, 2016

Copy link
Copy Markdown

Use $FilePath$ instead of $FileDir$/$FileName$ to support directories properly.

@trunda

trunda commented Apr 3, 2016

Copy link
Copy Markdown

'Fix on save' can be achieved by macro, if you are interested. Thank you for the gist, which was helpful for me.

@ksassnowski

ksassnowski commented May 25, 2016

Copy link
Copy Markdown

You can also use a File Watcher to enable fix on save. The configuration stays exactly the same.

bildschirmfoto 2016-05-25 um 10 37 59

Thanks to simonneaves below for pointing out that you probably want to untick 'Immediate file synchronization'. Otherwise it will run the command on every key stroke which is definitely not what you want!

@kiisodj

kiisodj commented Jun 4, 2016

Copy link
Copy Markdown

Thanks kssassnowski. For fix on save, rather than 'fix as you type', I unticked 'Immediate file synchronization'.

@sergiodebcn

Copy link
Copy Markdown

Thanks for the info, very useful

@mcfedr

mcfedr commented Feb 8, 2017

Copy link
Copy Markdown

Excellent, my changes, just as a note, as I am using a config file:
Arguments:
fix -v --config .php_cs.dist --path-mode=intersection -- $FilePath$

@skoop

skoop commented Apr 24, 2017

Copy link
Copy Markdown

thank you @ksassnowski, I've just used that to set it up for me. works like a charm

ghost commented May 3, 2017

Copy link
Copy Markdown

--level doesn't exist anymore, for an updated config take a look at : https://hackernoon.com/how-to-configure-phpstorm-to-use-php-cs-fixer-1844991e521f

@mfour-merickson

Copy link
Copy Markdown

@mcfedr Perhaps you would not mind sharing your config file? I have pretty sensible defaults but always intrigued by what others are using.

@unglud

unglud commented Dec 1, 2017

Copy link
Copy Markdown

If I put it to After Commit Run Tool how can I fix all commited files instead only one currently opened?

@j3rrey

j3rrey commented Nov 20, 2018

Copy link
Copy Markdown

Step by step:

composer global require friendsofphp/php-cs-fixer

paste this export PATH="$PATH:$HOME/.composer/vendor/bin" into your .zshrc or .bashrc or .profile depending on your system usually located at your HOME directory
Linux: .bashrc
Mac: .profile
Mac with Oh my zsh : .zshrc

Save this code as watcher.xml on your harddrive.
You can further edit the arguments aka add rules:
<option name="arguments" value="fix $FileDir$/$FileName$ --allow-risky=yes rules=@PSR2, @Symfony" />
Various rules can be found here : Rules By default the cs Fixer uses PSR2

<TaskOptions>
  <TaskOptions>
    <option name="arguments" value="fix $FileDir$/$FileName$ --allow-risky=true" />
    <option name="checkSyntaxErrors" value="true" />
    <option name="description" />
    <option name="exitCodeBehavior" value="ERROR" />
    <option name="fileExtension" value="php" />
    <option name="immediateSync" value="false" />
    <option name="name" value="PHP CS Fixer" />
    <option name="output" value="" />
    <option name="outputFilters">
      <array />
    </option>
    <option name="outputFromStdout" value="false" />
    <option name="program" value="$USER_HOME$/.composer/vendor/bin/php-cs-fixer" />
    <option name="runOnExternalChanges" value="false" />
    <option name="scopeName" value="Project Files" />
    <option name="trackOnlyRoot" value="false" />
    <option name="workingDir" value="$ProjectFileDir$" />
    <envs />
  </TaskOptions>
</TaskOptions>

Import it in phpstorm:
PHPstorm->preferences->tools->File Watchers
Import

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment