All PHP contributions must adhere to PSR-1 and PSR-2 specifications.
In addition:
- All documentation blocks must adhere to the PHPDoc format and syntax.
- All PHP files MUST contain the following documentation block immediately after the opening
<?php
tag:
/**
* UserFrosting Uniform Resource Locator (http://www.userfrosting.com)
*
* @link https://github.com/userfrosting/UniformResourceLocator
* @copyright Copyright (c) 2013-2019 Alexander Weissman, Louis Charette
* @license https://github.com/userfrosting/UniformResourceLocator/blob/master/LICENSE.md (MIT License)
*/
- All classes MUST be prefaced with a documentation block containing a description and the author(s) of that class. You SHOULD add other descriptive properties as well.
- All class members and methods MUST be prefaced with a documentation block. Any parameters and return values MUST be documented.
- The contents of a class should be organized in the following order: constants, member variables, constructor, other magic methods, public methods, protected methods, private methods.
- Within each of the categories above, variables/methods should be alphabetized. See http://stackoverflow.com/a/3366429/2970321.
- Setter methods SHOULD return the parent object.
- All class member variables and local variables MUST be declared in
camelCase
.
- Array keys MUST be defined using
snake_case
. This is so they can be referenced in Twig and other templating languages. - Array keys MUST NOT contain
.
. This is because.
is a reserved operator in Laravel and Twig's dot syntax. - Multidimensional arrays SHOULD be referenced using dot syntax whenever possible. So, instead of doing
$myArray['person1']['email']
, you should use$myArray['person1.email']
if your array structure supports it.
PHP-CS-Fixer can be used to automatically fix PHP code styling. UserFrosting provides a project specific configuration file (.php_cs
) with a set of rules reflecting our style guidelines. This tool should be used before submitting any code change to assure the style guidelines are met. Every sprinkles will also be parsed by the fixer.
PHP-CS-Fixer is automatically loaded by Composer and can be used from the UserFrosting root directory :
vendor/bin/php-cs-fixer fix