PSR

Php

Standards

Recommendations

В PHP никогда

не было единого стандарта для написания кода

Php FIG

The Framework Interoperability Group

Группа концепции совместимости

PSR-0

Чтобы не загружать все классы руками через include и require добавили функцию spl_autoload_register

Deprecated

\<Vendor Name>\(<Namespace>\)*<Class Name>
\Symfony\Core\Request => /path/to/project/lib/vendor/Symfony/Core/Request.php

Autoloading Standard

PSR-1

Решили как правильно именовать классы, методы, свойства.

  • PHP Tags
  • Character Encoding
  • Side Effects

Basic Coding Standard

PSR-2

Закончили священную войну и решили использовать пробелы вместо табов.

  • Files

  • Lines

  • Indenting

  • Keywords and True/False/Null

Coding Style Guide

PSR-3

Добавили интерфейс по которому должен работать любой Logger.

Logger Interface

Программируйте на основе интерфейса, а не его реализации.

Мэтт Зандстра​

PSR-4

Ребята подумали что все уже есть и пора улучшать нажитое, в итоге уточнили как должен работать autoloader. По сути это нужно знать при оформлении своих пакетов, всю остальную работу делает composer.

Autoloader

\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>

PSR-5

Тут таки решились привести все блоки комментариев в единый вид, а то будет затруднительно использовать annotations когда нет стандарта комментариев.

PHPDoc Standard

Draft

PSR-6

Интерфейс кеширования, суть та же что и с PSR-3 но только для кеширования.

Caching Interface

PSR-7

Суть точно такая же как и PSR-6 и PSR-3 — добавить интерфейс, но в этот раз это интерфейсы HTTP-сообщений. Но!

HTTP message interfaces

  • Request

  • Response

Middleware

промежуточное ПО / модули

Абстракция

модули которые не зависят от framework/CMS

?

Спасибо

Igor
Cheledinov

cheledinov@gmail.com

@ich_dev

http://devhell.ru

Links

PSR

By chilic

PSR

PHP Standards Recommendations

  • 137