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);
}


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow