Configure PHP-CS-Fixer for Laravel on Visual Code

Jonathan Zarate - Dec 6 '19 - - Dev Community

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
. . . . .
Terabox Video Player