Programs are ment to be read by humans and only incidentally for computers to execute
1. Vispārīgi
- Failos JĀLIETO tikai
<?php
un<?=
tegi - Failos JĀLIETO tikai UTF-8 without BOM kodējums
- Klašu nosaukumiem JĀBŪT deklarētiem
StudlyCaps
stilā - Klases konstantes JĀDEKLARĒ
UPPER_CASE
stilā - Metodēm JĀBŪT deklarētām
camelCase
stilā - Mainīgajiem JĀBŪT deklarētiem
snake_case
stilā - Atkāpēm jābūt “tab” simbolam, nevis atstarpēm
<?php namespace Vendor\Model; use FooClass; use BarClass as Bar; use Libs\Helpers\Presenter; class MyClassName { const VERSION = '1.0'; public my_variable = 'var'; public function myFunctionName( $arg = [] ) { return $arg; } }
2. Pārskats
- Nevar būt strikts limits rindas garumam; tas varētu būt aptuveni 120 simboli;
- Jābūt vienai brīvai rindai pēc
namespace
deklarēšanas un jābūt brīvai rindai pēcuse
bloka deklarēšanas; - Klases atverošai iekavai jāatrodas jaunā rindā un aizverošā iekava ir jaunā rindā pēc klases ķermeņa;
2.1 Atslēgvārdi
PHP atslēgvārdi jāraksta lower case
.
Tādas PHP konstantes kā true
, false
un null
raksta lower case
.
2.2 Klases, īpašības un metodes
2.2.1 extends
un implements
Atslēgvārdiem extends
un implements
jābūt deklarētiem tajā pašā rindā, kur ir atslēgvārds class
.
Klases atverošai iekavai jāatrodas jaunā rindā un aizverošā iekava ir jaunā rindā pēc klases ķermeņa.
<?php namespace Vendor\Model; class MyClassName extends ParentClass implements \ArrayAccess, \Countable { // konstantes, īpašības, metodes }
namespace Vendor\Model; class MyClassName extends ParentClass implements \ArrayAccess, \Countable, \Serializable { // konstantes, īpašības, metodes }
2.2.2 Īpašības
Īpašību redzamībai jābūt deklarētai visiem mainīgajiem.
Atslēgvārds var
nedrīkst tikt izmantots deklarējot īpašības.
Vienā rindā nedrīks deklarēt vairāk kā vienu īpašību.
Nedrīkst deklarēt privātās īpašības ar apakšsvītru sākumā.
<?php class ClassName { public $foo = null; }
2.2.3 Metodes
Redzamībai jābūt deklarētai vismām metodēm.
Privātās vai aizsargātās metodes nedrīkst deklarēt ar apakšsvītru sākumā.
Pēc metodes deklarēšanas nedrīkst lietot atstarpi. Atverošai figūriekavai jāatrodas jaunā rindā, pēc metodes nosaukuma, bet aizverošā, pēc metodes ķermeņa beigām.
Metodes deklarēšanai jaizskatās sekojoši:
<?php namespace Vendor\Package; class ClassName { public function fooBarBaz( $arg1, &$arg2, $arg3 = [] ) { // metodes ķermenis } }
2.2.4 Metožu argumenti
Argumentu sarakstā nedrīkst lietot atstarpes pirms komatiem un JĀLIETO atstarpe pēc katra komata.
Argumenti ar standartvērtībām jāatrodas funkcijas argumentu saraksta beigās.
<?php namespace Vendor\Package; class ClassName { public function fooBarBaz( $arg1, &$arg2, $arg3 = [] ) { // metodes ķermenis } }
Argumentu saraksts var tikt sadalīts vairākās rindās. Darot tā, pirmajam argumentam jāatrodas jaunā rindā un katrs nākamais arguments arī atrodas jaunā rindā. Funkcijas aizverošā iekava atrodas jaunā rindā, bet atverošā iekava tajā pašā rindā atdalīta ar atstarpi.
<?php namespace Vendor\Package; class ClassName { public function fooBarBaz( ClassTypeHint $arg1, &$arg2, array $arg3 = [] ) { // metodes ķermenis } }