DEV Community

Jonathan Zarate
Jonathan Zarate

Posted on • Edited on

Configure PHP-CS-Fixer for Laravel on Visual Code

Hi, developers. 😄

I will teach you how to configure php-cs-fixer for laravel in the visual code editor.

Often, when I write PHP code, I can make mistakes, such as lack of spaces, structure of conditions, etc. 😅

What is PHP-CS-Fixer?

PHP-CS-Fixer is a standard for ordened your code and apply code style guide PSR for PHP.

PHP-CS-Fixer It is a tool that helps to organize the application code, following the PSR standards.

Installation PHP-CS-Fixer.

Github PHP-CS-Fixer



$ brew install php-cs-fixer


Enter fullscreen mode Exit fullscreen mode

Installation VSCode



brew update
brew tap caskroom/cask
brew cask search visual-studio-code


Enter fullscreen mode Exit fullscreen mode

Configuration

  • Open VSCode editor
  • Add extension php cs fixer to VSCode
  • Add to settings.json file


{
  "editor.formatOnSave": true,

  "php-cs-fixer.onsave": true,
  "php-cs-fixer.executablePath": "${extensionPath}/php-cs-fixer.phar",
  "php-cs-fixer.config": "~/.vscode/.php_cs;",
}


Enter fullscreen mode Exit fullscreen mode
  • Add config file .php_cs ```

$ cd ~/.vscode
$ touch .php_cs

- Open config file `.php_cs` and add PHPCSFixer configuration.

Ok, The configuration that I use to work PHP-CS-Fixer with Laravel applications is optional. :smile:

I will begin to explain the changes that I have made in the configuration file .php_cs.

concat_space:

'concat_space' => array('spacing' => 'none'),

Example



  $this->load(__DIR__.'/Commands');


</code></pre></div>
<p>Spacing to apply around concatenation operator, I like it with no space.</p>
<h4>
  <a name="unsend-imports" href="#unsend-imports">
  </a>
  unsend imports:
</h4>

<p><code>'no_unused_imports' =&gt; true,</code></p>

<p>Remove imports that are not used in a class.</p>
<h4>
  <a name="orderedimports" href="#orderedimports">
  </a>
  ordered_imports
</h4>

<p><code>'ordered_imports' =&gt; array('sort_algorithm' =&gt; 'alpha'),</code></p>

<p>Currently in Laravel 6, the order of imports was included alphabetically, Here the <a href="https://github.com/laravel/framework/pull/29933">Pull Request</a> of the discussion for this change. :grimacing:</p>

<p>Personally, I liked the order by length. :smile:</p>
<h4>
  <a name="returntypedeclaration" href="#returntypedeclaration">
  </a>
  return_type_declaration
</h4>

<p><code>'return_type_declaration' =&gt; array('space_before' =&gt; 'one'),</code></p>

<p>There should be one or no space before colon, and one space after it in return type declarations, according to configuration.</p>

<p>example of my configuration.</p>
<div class="highlight"><pre class="highlight php"><code>

    <span class="cd">/**
     * Check if the user is a admin.
     *
     * @return bool
     */</span>
    <span class="k">public</span> <span class="k">function</span> <span class="n">isAdmin</span><span class="p">()</span> <span class="p">:</span> <span class="kt">bool</span>
    <span class="p">{</span>
        <span class="k">return</span> <span class="nv">$this</span><span class="o">-&gt;</span><span class="n">roles</span><span class="o">-&gt;</span><span class="nf">contains</span><span class="p">(</span><span class="s1">'name'</span><span class="p">,</span> <span class="nc">Role</span><span class="o">::</span><span class="no">ADMIN</span><span class="p">);</span>
    <span class="p">}</span>


</code></pre></div>
<p>Add a space before the colon.</p>
<h4>
  <a name="notoperatorwithsuccessorspace" href="#notoperatorwithsuccessorspace">
  </a>
  not_operator_with_successor_space
</h4>

<p><code>'not_operator_with_successor_space' =&gt; true,</code></p>

<p>Logical NOT operators (!) should have one trailing whitespace.</p>

<p>Example.</p>

<p>Input</p>
<div class="highlight"><pre class="highlight php"><code>

<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nv">$foo</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">echo</span> <span class="s2">"Help!"</span><span class="p">;</span>
<span class="p">}</span>


</code></pre></div>
<p>Output</p>
<div class="highlight"><pre class="highlight php"><code>

<span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nv">$foo</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">echo</span> <span class="s2">"Help!"</span><span class="p">;</span>
<span class="p">}</span>


</code></pre></div><h1>
  <a name="conclusion" href="#conclusion">
  </a>
  Conclusion.
</h1>

<p><strong>PHP-CS-Fixer</strong> is a very useful tool when writing PHP code in Laravel applications. :nerd_face: </p>

<p>I hope you like this post, if you have questions about me you can write a comment below or send a message to my twitter. :wave:</p>

<p>Thanks.</p>
Enter fullscreen mode Exit fullscreen mode
Enter fullscreen mode Exit fullscreen mode

Top comments (3)

Collapse
 
erickzh profile image
Erick Zarate Hernandez

Nice!!

Collapse
 
zaratedev profile image
Jonathan Zarate

Thanks Dude!

Collapse
 
balduinofernando profile image
Balduino Fernando

Great Article.... Thanks, it helped me understand some stuff around.