Поиск…


Вступление

Рекомендация PSR (Рекомендация по стандартам PHP) представляет собой ряд рекомендаций, составленных вместе с FIG (Framework Interop Group).

«Идея группы состоит в том, чтобы представители проекта говорили об общих чертах между нашими проектами и находили способы совместной работы» - FIG FAQ

PSR могут находиться в следующих состояниях: Accepted, Review, Draft или Устаревшие.

PSR-4: автозагрузчик

PSR-4 является принятой рекомендацией, которая описывает стандарт для автозагрузки классов через имена файлов. Эта рекомендация рекомендуется в качестве альтернативы ранее (и теперь устаревшей) PSR-0 .

Полноценное имя класса должно соответствовать следующему требованию:

 \<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
  • Он ДОЛЖЕН содержать пространство имен поставщика верхнего уровня (например: Alphabet )
  • Он МОЖЕТ содержать одно или несколько пространств имен (например: Google\AdWord )
  • Он ДОЛЖЕН содержать имя KeywordPlanner класса (например: KeywordPlanner )

Таким образом, последним именем класса будет Alphabet\Google\AdWord\KeywordPlanner . Полноценное имя класса также должно перевести на полноценный путь к файлу, поэтому Alphabet\Google\AdWord\KeywordPlanner будет находиться в [path_to_source]/Alphabet/Google/AdWord/KeywordPlanner.php

Начиная с PHP 5.3.0, пользовательская функция автозагрузки может быть определена для загрузки файлов на основе шаблона пути и имени файла, который вы определяете.

# Edit your php to include something like:
spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php';});

Замена местоположения ('classes /') и расширение имени файла ('.class.php') со значениями, которые относятся к вашей структуре.

Менеджер пакетов Composer поддерживает PSR-4, что означает, что если вы следуете стандарту, вы можете автоматически загружать свои классы в свой проект с помощью автозагрузчика поставщика Composer.

# Edit the composer.json file to include
{
    "autoload": {
        "psr-4": {
            "Alphabet\\": "[path_to_source]"
        }
    }
}

Восстановить файл автозагрузки

$ composer dump-autoload

Теперь в вашем коде вы можете сделать следующее:

<?php

require __DIR__ . '/vendor/autoload.php';
$KeywordPlanner = new Alphabet\Google\AdWord\KeywordPlanner();

PSR-1: стандартный стандарт кодирования

PSR-1 является принятой рекомендацией и содержит базовую стандартную рекомендацию о том, как писать код.

  • В нем описываются имена имен для классов, методов и констант.
  • Это требует принятия рекомендаций PSR-0 или PSR-4.
  • Он указывает, какие теги PHP использовать: <?php и <?= Но не <? ,
  • Он определяет, какую кодировку файла использовать (UTF8).
  • В нем также указывается, что файлы должны либо объявлять новые символы (классы, функции, константы и т. Д.), Но и не вызывать никаких других побочных эффектов или выполнять логику с побочными эффектами, а не определять символы, но делать то и другое.

PSR-8: интерфейс Huggable

PSR-8 - это пародия PSR (в настоящее время в проекте ), предложенная Ларри Гарфилдом в качестве шутки апрельских дураков 1 апреля 2014 года.

В проекте описывается, как определить интерфейс для создания объекта Huggable .

Извлечь из контура кода:

<?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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow