PHP Style Guide#
Background#
This document is intended to outline the style rules for PHP here at Miva. This style guide applies to anywhere that PHP is written. In general we adhere to the PSR-12 Extended Coding Style with the exception of using tabs over spaces to maintain consistency across our code base. It is recommended to read through the PSR-12 Style Guide, but outlined here are some of the more important aspects.
Key Points#
- Code according to our PHPCS linting standards.
- Follow the General guidelines below.
- Use Composer for 3rd-party package management.
General#
Files#
Files must use the Unix LF line ending.
All PHP files must have a single empty line at the end.
The closing ?>
tag should be omitted.
Lines#
There is a soft limit of 120 characters per line.
There must not be any trailing whitespace at the end of lines.
Indenting#
Code should be indented using tabs. Avoid using spaced for indentation.
Declare Statements, Namespace, and Import Statements#
PHP files should follow this structure:
- Opening
<?php
tag - Namespace declaration of the file
- One or more class-based
use
imports - One or more function-based
use
imports - One or more constant-based
use
imports - The rest of the code
Class Properties and Constants#
Visibility must be declared on all properties and constants.
Do not use the var
keyword to declare a property.
Only one declaration statement per line.
There must be a space between any type declarations and the property name.
// Example
<?php
namespace Vendor\Package;
class FooBar
{
public $name = 'Dr. Michio Kaku';
public string $profession = 'Theoretical Physicist';
}
Methods and Functions#
Visibility must be declared on all methods and functions.
Method names should not have any prefix.
Method and function names are NOT followed by a space character.
The opening curly brace must be on its own line.
// Example
<?php
namespace Vendor\Package;
class FooBar
{
public function fizzBuzz($arg1, $arg2)
{
return arg1 + arg2;
}
}
if
, elseif
, else
#
The condition being evaluated should be surrounded with parenthesis.
There should be a space before and after the condition.
Use elseif
in place of else if
Incorrect
<?php
if( $expr1 === true )
{
doSomething($expr1);
}
else if( $expr2 === true )
{
doSomethingElse($expr2);
}
else
{
doLastCondition();
}
Correct
<?php
if ($expr1 === true) {
doSomething($expr1);
} elseif ($expr2 === true) {
doSomethingElse($expr2);
} else {
doLastCondition();
}