Набор абстракций, извлеченных из компонентов Symfony.
Может использоваться для построения семантики, которая оказалась полезной в компонентах Symfony и которая уже имеет проверенные реализации.
Пакеты, реализующие определенные контракты, должны перечислять их в разделе «provide» своего файла «composer.json», используя соглашение symfony/*-implementation
(например "provide": { "symfony/cache-implementation": "1.0" }
).
Абстракции в этом пакете полезны для достижения слабой связи и совместимости. Используя предоставленные интерфейсы в качестве подсказок типов, вы можете повторно использовать любые реализации, соответствующие их контрактам. Это может быть компонент Symfony или другой компонент, предоставленный сообществом PHP в целом.
В зависимости от их семантики некоторые интерфейсы можно комбинировать с автоматическим подключением для беспрепятственного внедрения сервиса в ваши классы.
Другие могут быть полезны в качестве интерфейсов маркировки, чтобы указать на конкретное поведение, которое можно включить при использовании автоматической настройки или ручного тегирования служб (или любых других средств, предоставляемых вашей платформой).
Когда это применимо, предоставленные контракты строятся на основе PSR PHP-FIG. Но у группы другие цели и разные процессы. Здесь мы концентрируемся на предоставлении абстракций, которые полезны сами по себе, но при этом совместимы с реализациями, предоставляемыми Symfony. Хотя это и не является основной целью, мы надеемся, что заявленные контракты прямо или косвенно внесут вклад в PHP-FIG.