Sök…
Introduktion
PSR (PHP-standardrekommendation) är en serie rekommendationer sammansatta av FIG (Framework Interop Group).
"Tanken bakom gruppen är att projektrepresentanter ska prata om särdragen mellan våra projekt och hitta sätt vi kan arbeta tillsammans" - FIG FAQ
PSR: er kan vara i följande tillstånd: Godkända, Granskning, Utkast eller Omskrivna.
PSR-4: Autoloader
PSR-4 är en accepterad rekommendation som beskriver standarden för autoloading klasser via filnamn. Denna rekommendation rekommenderas som ett alternativ till den tidigare (och nu avskrivna) PSR-0 .
Det fullt kvalificerade klassnamnet ska matcha följande krav:
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
- Det MÅSTE innehålla ett namnområde på leverantören på högsta nivå (t.ex.:
Alphabet
) - Det KAN innehålla ett eller flera undernamutrymmen (t.ex.
Google\AdWord
) - Det MÅSTE innehålla ett
KeywordPlanner
(KeywordPlanner
.:KeywordPlanner
)
Således skulle det sista Alphabet\Google\AdWord\KeywordPlanner
vara Alphabet\Google\AdWord\KeywordPlanner
. Det fullt kvalificerade klassnamnet bör också översättas till en meningsfull filväg. Alphabet\Google\AdWord\KeywordPlanner
därför i [path_to_source]/Alphabet/Google/AdWord/KeywordPlanner.php
Från och med PHP 5.3.0 kan en anpassad autoloader-funktion definieras för att ladda filer baserat på sökväg och filnamnsmönster som du definierar.
# Edit your php to include something like:
spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php';});
Byt ut platsen ('klasser /') och filnamnstillägg ('.class.php') med värden som gäller för din struktur.
Composer- pakethanteraren stöder PSR-4 vilket innebär att om du följer standarden kan du ladda dina klasser i ditt projekt automatiskt med hjälp av Composers leverantörs autoloader.
# Edit the composer.json file to include
{
"autoload": {
"psr-4": {
"Alphabet\\": "[path_to_source]"
}
}
}
Regenerera autoloader-filen
$ composer dump-autoload
Nu i din kod kan du göra följande:
<?php
require __DIR__ . '/vendor/autoload.php';
$KeywordPlanner = new Alphabet\Google\AdWord\KeywordPlanner();
PSR-1: Basic Coding Standard
PSR-1 är en accepterad rekommendation och beskriver en grundläggande standardrekommendation för hur kod ska skrivas.
- Den beskriver namngivningsförhållanden för klasser, metoder och konstanter.
- Det gör att anta PSR-0 eller PSR-4 rekommendationer ett krav.
- Den anger vilka PHP-taggar som ska användas:
<?php
och<?=
Men inte<?
. - Den anger vilken filkodning som ska användas (UTF8).
- Den anger också att filer antingen ska deklara nya symboler (klasser, funktioner, konstanter, etc.) och orsaka inga andra biverkningar, eller köra logik med biverkningar och inte definiera symboler, men gör båda.
PSR-8: Huggable-gränssnitt
PSR-8 är en falsk PSR (för närvarande i utkast ) som föreslagits av Larry Garfield som ett April Fools-skämt den 1 april 2014.
Utkastet beskriver hur man definierar ett gränssnitt för att göra ett objekt Huggable
.
Utdrag från kodöversikten:
<?php
namespace Psr\Hug;
/**
* Defines a huggable object.
*
* A huggable object expresses mutual affection with another huggable object.
*/
interface Huggable
{
/**
* Hugs this object.
*
* All hugs are mutual. An object that is hugged MUST in turn hug the other
* object back by calling hug() on the first parameter. All objects MUST
* implement a mechanism to prevent an infinite loop of hugging.
*
* @param Huggable $h
* The object that is hugging this object.
*/
public function hug(Huggable $h);
}