Как нужно реагировать, если вас спрашивают, знакомы ли вы с PSR?

Каково значение стандарта PSR в контексте использования в PHP, особенно в отношении инструмента Composer и его зависимостей? Какие именно особенности связаны с использованием стандарта PSR, и как оно отражается на практике при работе с библиотеками и пакетами?
  • 11 января 2024 г. 13:18
Ответы на вопрос 3
PSR представляет собой сокращение от PHP Standards Recommendation — это стандарты, предложенные группой PHP-FIG (PHP Framework Interop Group), организацией, которая состоит из представителей множества известных PHP-фреймворков и проектов. Цель этих стандартов — упростить разработку и обеспечить интероперабельность между различными PHP-проектами. Каждый стандарт PSR имеет свой номер и описывает определенные аспекты кодирования или интерфейсы, например, стиль кодирования, логирование, кеширование и так далее.

Если кто-то спрашивает вас, знакомы ли вы с PSR, правильным ответом будет рассказать о тех стандартах PSR, с которыми вы имеете опыт. Если вы знакомы с PSR, вы можете перечислить и обсудить те, с которыми работали, например:

1. PSR-1 и PSR-2 (сейчас заменены PSR-12) касаются основных стандартов кодирования и стиля кода соответственно, таких как именование классов, методов и констант, наличие пространств имен и так далее.
2. PSR-3 описывает интерфейс логирования, позволяющий библиотекам и фреймворкам использовать общий объект логгера.
3. PSR-4 – стандарт автозагрузки, который обеспечивает стандартизированный способ загрузки классов на основе пространств имен.

В отношении инструмента Composer и его зависимостей стандарт PSR-4 часто используется вместе с автозагрузчиком Composer для управления загрузкой классов в приложениях. Это позволяет автоматически загружать классы без необходимости использования `require` или `include` для каждого класса, с которым вы работаете. Когда вы устанавливаете сторонние библиотеки или пакеты с помощью Composer, они часто следуют стандарту PSR-4 для автозагрузки.

Пример использования PSR-4 в Composer можно увидеть в файле `composer.json`:

```json
{
    "autoload": {
        "psr-4": {
            "MyApp\\": "src/"
        }
    }
}
```

В примере выше, пространство имен `MyApp\` будет автоматически сопоставлено с директорией `src/`, что позволяет Composer автоматически найти и подключить соответствующие классы по их пространствам имен.

На практике использование стандартов PSR приводит к тому, что различные проекты и библиотеки становятся более организованными и совместимыми друг с другом, а также упрощает коллаборацию и понимание кода между разработчиками. Соблюдение этих стандартов считается хорошей практикой в PHP-разработке.
Вообще правильно ответить встречным вопросом, про какой именно PSR идет речь. Или вы хотите определение/расшифровку? 

Тебе же пока стоит отвечать, что нет, не знаешь. Но если, ...

- Прочитаешь обзорную статью, что такое PSR (легко ищется в яндексе)
- Внимательно изучишь каждый из этих (там же можно найти)
- Думаешь как это можно применить на практике. Потом идешь настраиваешь в своей IDE форматирование кода по одному из стандартов :)

то смело сможешь отвечать: "- Да, знаю. Было такое."
Значит в проекте выполнены все требования соответствующегл PSR. 
Для PSR10 это означает, что на главной странице проекта есть ссылка на процедуру подачи информации об обнаруженной уязвимости.
Похожие вопросы