Naming conventions for code released by PHP FIG
- Interfaces MUST be suffixed by
Interface: e.g. Psr\Foo\BarInterface.
- Abstract classes MUST be prefixed by
Abstract: e.g. Psr\Foo\AbstractBar.
- Traits MUST be suffixed by
Trait: e.g. Psr\Foo\BarTrait.
- PSR-1, 2 and 4 MUST be followed.
- The vendor namespace MUST be
Psr.
- There MUST be a package/second-level namespace in relation with the PSR that
covers the code.
- Composer package MUST be named
psr/<package> e.g. psr/log. If they
require an implementation as a virtual package it MUST be named
psr/<package>-implementation and be required with a specific version like
1.0.0. Implementors of that PSR can then provide
"psr/<package>-implementation": "1.0.0" in their package to satisfy that
requirement. Specification changes via further PSRs should only lead to a new
tag of the psr/<package> package, and an equal version bump of the
implementation being required.
- Special lighweight utility packages MAY be produced alongside PSRs and
interfaces and be maintained and updated after the PSR has been accepted. These
MUST be under the vendor namespace Fig.