I am trying to figure out which code style to enforce with the phpcs
code sniffer.
Since the popularity of Symfony2, it seems to be a good practice to use its code standard. On the other hand, its code style is based upon PSR2, so this seems to be the most basic style one should use.
Furthermore, in the basic installation of squizlabs/php_codesniffer
, the Symfony2 standard is not included and has to be manually installed whereas the PSR2 is easily available.
So I want to know the the main difference of the Symfony2 guideline as compared to the PSR2 in order to decide which to use.
For instance, I realized that Symfony2 style enforces that Concat operator must not be surrounded by spaces
while the PSR2 ignores this case. Yet I did not find an easy way to list the differences. I looked in the rulseset.xml
but it was not that clear to me how it is set up.
I am interested in how to get a complete lists of the differences between the PSR2 and Symfony2 code standard.
The PHP Standard Recommendation (PSR) is a PHP specification published by the PHP Framework Interop Group. Similar to Java Specification Request for Java, it serves the standardization of programming concepts in PHP.
Deprecated - As of 2019-08-10 PSR-2 has been marked as deprecated.
Laravel follows the PSR-0 and PSR-1 coding standards. In addition to these standards, the following coding standards should be followed: The class namespace declaration must be on the same line as <? php .
The Symfony coding standards basically extend the PSR standards. PSR-2 doesn't specify rules for all situations, so the Symfony standards add some rules on top of PSR-2.
As you said the PHP CodeSniffer repository doesn't include a ruleset for Symfony. There are multiple third-party implementations of a Symfony2 ruleset, so the exact list of differences between them and the PSR-2 ruleset depends on the implementation you choose.
However, when looking to the differences between the standards of Symfony and PSR (not the rulesets for PHP CodeSniffer), some additions by the Symfony standards are:
.
)setUp
and tearDown
methods for PHPUnit classes)These are just some examples, take a look at the Symfony coding standards for the full list.
In my opinion the Symfony standards make sense and I try to use them whenever I can, even outside of Symfony projects.
From PhpStorm 2017.1. On the left Symfony, on the right PSR-2
But at Symfony site stands opposite rule:
Declare all the arguments on the same line as the method/function name, no matter how many arguments there are;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With