26
The number one recommendation - PSR-1
Just the Gist
PHP Standard Recommendation 1 (PSR-1) is Basic Coding Standards for PHP. It is a set of coding standards that gives us a recommended way to structure our code.
Yesterday we had a first glance at PHP Standard Recommendations (PSRs). While these are not rules, they may provide just the structure needed to make spaghetti code in to lasagna. Today we see what PSR-1 (Basic Coding Standard) gives us for recommendation.
First, we use either <?php
or <?=
in our files. This means that we should avoid using <?
.
The tag
<?
should be avoided since it can cause issues when generating XML documents. If you want to use it though, the settingshort_open_tag
inphp.ini
controls this.
Next, if we declare a new class, functions or constants in a file, we should avoid it causing side effects external to the file. This means for instance that we should not be updating any ini-settings or echoing out anything and then declare a class.
When we are on about classes, these should follow an autoloading standard. The current standard is PSR-4, which recommends us to use namespaces which goes hand-in-hand with the file structure. A class HomeController
with a namespace App\Controller
should be placed in folders and a file such as App\Controller\HomeController.php
. Having multiple classes in a file is not recommended.
Following PSR-1, we get a structure that would look something like this:
<?php
// Path: .\src\App\Controller\HelloController.php
namespace App\Controller;
class HelloController
{
const HELLO_WORLD = 'Hello World';
public function helloWorld()
{
echo self::HELLO_WORLD;
}
}
What's not specified in PSR-1 is how we capitalize or underscore our variables (non-constants). All this PSR asks us is to be consistent with how we use it, be it $PascalCase
, $camelCase
or $snake_case
.
A closely related PSR is PSR-12 (Extended Coding Standard). PSR-12 is a recommendation that adds some additional rules to PSR-1. Among other things, it let's us know where to put our declare
statements when present, to omit ?>
when dealing with files containing only PHP code, and how to use the use
statements. If you feel the need to find more structure for your projects, PSR-1 and PSR-12 are good places to start!
Do you see any benefits of following Basic Coding Standard? Perhaps you already did, but didn't know it was PSR-1 or PSR-12 that you were following? Do you agree with PSR-1? Should PSR-1 also have given us a recommended way to write our variable-names? Comment below and let us know what you think ✍
- PSR-1: Basic Coding Standard - https://www.php-fig.org/psr/psr-1/
- PSR-12: Extended Coding Standard - https://www.php-fig.org/psr/psr-12/
26