Szukaj…
Wprowadzenie
PSR (zalecenie dotyczące standardów PHP) to seria zaleceń opracowanych przez FIG (Framework Interop Group).
„Ideą grupy jest to, aby przedstawiciele projektu rozmawiali o podobieństwach między naszymi projektami i znajdowali sposoby współpracy” - FIG FAQ
Raporty PSR mogą być w następujących stanach: Zaakceptowane, Przejrzane, Szkicowe lub Przestarzałe.
PSR-4: Autoloader
PSR-4 jest przyjętą rekomendacją, która określa standard automatycznego ładowania klas poprzez nazwy plików. To zalecenie jest zalecane jako alternatywa dla wcześniejszego (i obecnie przestarzałego) PSR-0 .
W pełni kwalifikowana nazwa klasy powinna spełniać następujące wymagania:
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
- MUSI zawierać przestrzeń nazw dostawców najwyższego poziomu (np.
Alphabet
) - MOŻE zawierać jedną lub więcej podprzestrzeni nazw (np.
Google\AdWord
) - MUSI zawierać końcową nazwę klasy (np .:
KeywordPlanner
)
Zatem ostateczna nazwa klasy to Alphabet\Google\AdWord\KeywordPlanner
. W pełni kwalifikowana nazwa klasy powinna również zostać przetłumaczona na znaczącą ścieżkę do pliku, dlatego Alphabet\Google\AdWord\KeywordPlanner
powinien znajdować się w [path_to_source]/Alphabet/Google/AdWord/KeywordPlanner.php
Począwszy od PHP 5.3.0, można zdefiniować niestandardową funkcję autoloadera do ładowania plików na podstawie zdefiniowanej ścieżki i wzorca nazw plików.
# Edit your php to include something like:
spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php';});
Zastąpienie położenia („klas /”) i rozszerzenia nazwy pliku („.class.php”) wartościami, które dotyczą twojej struktury.
Menedżer pakietów Composer obsługuje PSR-4, co oznacza, że jeśli zastosujesz się do standardu, możesz automatycznie ładować swoje klasy do projektu za pomocą autoloadera dostawcy Composer.
# Edit the composer.json file to include
{
"autoload": {
"psr-4": {
"Alphabet\\": "[path_to_source]"
}
}
}
Ponownie wygeneruj plik autoloadera
$ composer dump-autoload
Teraz w kodzie możesz wykonać następujące czynności:
<?php
require __DIR__ . '/vendor/autoload.php';
$KeywordPlanner = new Alphabet\Google\AdWord\KeywordPlanner();
PSR-1: Podstawowy standard kodowania
PSR-1 jest przyjętą rekomendacją i przedstawia podstawowe standardowe zalecenie dotyczące sposobu pisania kodu.
- Przedstawia konwencje nazewnictwa dla klas, metod i stałych.
- Wymaga to przyjęcia zaleceń PSR-0 lub PSR-4.
- Wskazuje, których znaczników PHP należy użyć:
<?php
i<?=
Ale nie<?
. - Określa, jakiego kodowania pliku użyć (UTF8).
- Stwierdza również, że pliki powinny albo deklarować nowe symbole (klasy, funkcje, stałe itp.) I nie powodować innych efektów ubocznych, albo wykonywać logikę z efektami ubocznymi i nie definiować symboli, ale robią oba te elementy.
PSR-8: Huggable Interface
PSR-8 to fałszywy PSR ( obecnie w wersji roboczej ) zaproponowany przez Larry'ego Garfielda jako żart primaaprilisowy 1 kwietnia 2014 r.
W szkicu opisano, jak zdefiniować interfejs, aby obiekt był przystosowalny do Huggable
.
Wybierz z konspektu kodu:
<?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);
}