Code Standards Compliance

Fixing Code Standard Violations

To ensure that your code follows the ownCloud standard, run make test-php-style before a PR is initially submitted and each time any additional changes to it are made.

The command runs php-cs-fixer over the codebase, using ownCloud’s coding-standard, loaded from .php_cs.dist in the root directory of your ownCloud installation. The acceptance test code is also checked by php_codesniffer, using the rules in phpcs.xml in the root directory of your ownCloud installation.

If any standards violations are detected by php-cs-fixer then run make test-php-style-fix to automatically correct them.

php_codesniffer cannot always fix code standards violations that it finds. You must manually fix those.

Viewing Code Standard Violations

For further details about the coding standard please refer to the owncloud/coding-standard repository.

To check for style errors, run make test-php-style. After running it, you will see console output from php-cs-fixer, similar to the example below:

php -d zend.enable_gc=0 vendor-bin/owncloud-codestyle/vendor/bin/php-cs-fixer fix -v --diff --diff-format udiff --allow-risky yes --dry-run
Loaded config ownCloud coding standard from "/ownCloud/core/.php_cs.dist".
Using cache file ".php_cs.cache".
.....................................................................................................................................................F........................................................................................
Legend: ?-unknown, I-invalid file syntax, file ignored, S-Skipped, .-no changes, F-fixed, E-error
   1) apps/files_sharing/tests/Iterator/WritableAppsPathsFilterIteratorTest.php (class_definition, braces)
      ---------- begin diff ----------
--- Original
+++ New
@@ -23,5 +23,4 @@
 use Test\TestCase;

 class WritableAppsPathsFilterIteratorTest extends TestCase {
-
 }

      ----------- end diff -----------

If php_codesniffer detects violations then you will see console output similar to the example below:

vendor-bin/php_codesniffer/vendor/bin/phpcs --cache --runtime-set ignore_warnings_on_exit --standard=phpcs.xml tests/acceptance tests/TestHelpers
...........E................................................  60 / 121 (50%)
............................................................ 120 / 121 (99%)
.                                                            121 / 121 (100%)



FILE: /home/phil/git/owncloud/core/tests/acceptance/features/bootstrap/BasicStructure.php
-------------------------------------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
-------------------------------------------------------------------------------------------------------------
 202 | ERROR | Doc comment for parameter "$ocPath" missing
     |       | (PEAR.Commenting.FunctionComment.MissingParamTag)
-------------------------------------------------------------------------------------------------------------

Time: 1.05 secs; Memory: 113.29MB