Поиск…
Вступление
Рекомендация 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);
}