PSR

3 года назад

Nikolai Gagarinov

Ответы

1

PSR — это набор рекомендаций по разработке на языке PHP, подготовленный сообществом PHP-FIG (группа по обеспечению совместимости фреймворков PHP). Эти документы описывают единые подходы к оформлению кода, организации структуры проектов и взаимодействию компонентов. Основная задача — сделать код предсказуемым, совместимым и удобным для коллективной работы.

Зачем нужен PSR

Рекомендации PSR формируют единые правила разработки. Это снижает разрозненность подходов и упрощает поддержку проектов.

Ключевые задачи:

  • формирование единообразного стиля кода;

  • упрощение чтения и анализа чужого кода;

  • снижение числа ошибок при интеграции компонентов;

  • обеспечение совместимости библиотек и приложений;

  • повышение прозрачности тестирования и сопровождения.

При использовании единых правил разработчик быстрее ориентируется в проекте, даже если не участвовал в его создании.

Обязательно ли соблюдать PSR

PSR не является обязательным стандартом в юридическом смысле. Это рекомендации, а не строгие требования. Разработчик может использовать собственные подходы.

На практике:

  • в командной разработке соблюдение PSR считается нормой;

  • при работе с крупными проектами отклонение от рекомендаций затрудняет поддержку;

  • при найме специалистов знание PSR часто проверяется.

Таким образом, соблюдение PSR — это профессиональный стандарт отрасли.

Виды стандартов PSR

Каждый стандарт PSR решает конкретную задачу. Они разделены по направлениям и имеют числовые обозначения.

Автозагрузка классов

Автозагрузка — это механизм автоматического подключения файлов с классами без явного вызова.

  • PSR-0 — первый подход к автозагрузке. Устанавливал связь между именами классов и файловой структурой. Считается устаревшим.

  • PSR-4 — современный стандарт. Упрощает структуру каталогов и делает автозагрузку более гибкой.

Пример настройки автозагрузки по PSR-4 в файле конфигурации Composer (менеджер зависимостей для PHP):

{
    "autoload": {
        "psr-4": {
            "App": "src/"
        }
    }
}

Пример класса:

namespace AppControllers;

class UserController
{
    public function index()
    {
        echo "Список пользователей";
    }
}

Файл должен находиться по пути src/Controllers/UserController.php.

Стили кодирования

Эти стандарты регулируют внешний вид кода и его структуру.

  • PSR-1 — базовые правила:

    • использование только одного типа тегов PHP;

    • единая кодировка файлов;

    • разделение объявления и выполнения кода;

  • PSR-2 — расширение PSR-1. Сейчас устарел;

  • PSR-12 — актуальный стандарт форматирования.

Основные требования PSR-12:

  • отступы — 4 пробела;

  • длина строки — ограничена;

  • фигурные скобки располагаются на новой строке;

  • строгая структура классов и методов.

Пример:

class Example
{
    public function run(): void
    {
        if ($condition) {
            echo "Выполнено";
        }
    }
}

Интерфейсы

Интерфейсы задают единый способ взаимодействия компонентов.

  • PSR-3 — журналирование. Определяет интерфейс для записи событий;

  • PSR-6 и PSR-16 — работа с кэшем (временным хранилищем данных);

  • PSR-11 — контейнер зависимостей. Управляет объектами и их связями;

  • PSR-13 — интерфейсы для гипермедиа (структурированных данных API);

  • PSR-14 — система событий. Позволяет компонентам взаимодействовать через события.

Пример интерфейса журналирования (PSR-3):

interface LoggerInterface
{
    public function info(string $message, array $context = []): void;
    public function error(string $message, array $context = []): void;
}

Любая реализация должна соответствовать этому интерфейсу.

HTTP

Эта группа стандартов описывает работу с сетевыми запросами и ответами.

  • PSR-7 — объекты HTTP-запроса и ответа;

  • PSR-15 — обработчики запросов и промежуточные слои;

  • PSR-17 — фабрики для создания HTTP-объектов;

  • PSR-18 — клиент для отправки HTTP-запросов.

Пример использования PSR-7:

function handleRequest(ServerRequestInterface $request): ResponseInterface
{
    $data = $request->getParsedBody();

    return new Response(200, [], json_encode($data));
}

Такой подход позволяет менять реализацию без изменения логики приложения.

Как разрабатываются стандарты PSR

Разработка ведется группой PHP-FIG. В нее входят разработчики популярных библиотек и фреймворков.

Процесс включает несколько этапов:

  • создание проекта стандарта одним или несколькими авторами;

  • обсуждение и проверка участниками группы;

  • голосование;

  • принятие или возврат на доработку.

Каждый стандарт получает статус:

  • черновик — начальная версия;

  • принят — утвержден и рекомендован;

  • заброшен — работа остановлена;

  • устаревший — заменен новым стандартом.

Информация о статусах публикуется на официальном ресурсе PHP-FIG.

Практическое значение PSR

Наиболее востребованы стандарты:

  • PSR-4 — автозагрузка;

  • PSR-12 — стиль кода;

  • PSR-3 — журналирование.

Они используются в большинстве современных проектов.

Преимущества применения:

  • ускорение разработки;

  • снижение количества конфликтов между компонентами;

  • упрощение обновления библиотек;

  • улучшение читаемости кода.

Рекомендации, связанные с узкими задачами, применяются реже, но остаются важными при разработке сложных систем.

Знание PSR позволяет работать с чужими проектами без дополнительной адаптации и использовать готовые решения без переписывания кода.

2 дня назад

Nikolai Gagarinov

0

PSR (PHP Standards Recommendations) - это набор рекомендаций по написанию кода на PHP. Они включают в себя стандарты кодирования, форматы файлов, соглашения об именовании и другие аспекты разработки. PSR помогают обеспечить совместимость и качество кода, а также облегчают работу с ним.

2 года назад

Елена Редькина

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845