Un conjunto de abstracciones extraídas de los componentes de Symfony.
Puede usarse para desarrollar la semántica que los componentes de Symfony demostraron ser útiles y que ya cuentan con implementaciones probadas en batalla.
Los paquetes que implementan contratos específicos deben incluirlos en la sección "provide" de su archivo "composer.json", utilizando la convención symfony/*-implementation
(por ejemplo "provide": { "symfony/cache-implementation": "1.0" }
).
Las abstracciones de este paquete son útiles para lograr un acoplamiento flexible y la interoperabilidad. Al utilizar las interfaces proporcionadas como sugerencias de tipo, puede reutilizar cualquier implementación que coincida con sus contratos. Podría ser un componente de Symfony u otro proporcionado por la comunidad PHP en general.
Dependiendo de su semántica, algunas interfaces se pueden combinar con cableado automático para inyectar sin problemas un servicio en sus clases.
Otros pueden ser útiles como interfaces de etiquetado, para dar pistas sobre un comportamiento específico que podría habilitarse al usar la configuración automática o el etiquetado de servicios manual (o cualquier otro medio proporcionado por su marco).
Cuando corresponda, los contratos proporcionados se crean sobre los PSR de PHP-FIG. Pero el grupo tiene diferentes objetivos y diferentes procesos. Aquí, nos centramos en proporcionar abstracciones que sean útiles por sí solas y al mismo tiempo compatibles con las implementaciones proporcionadas por Symfony. Aunque no es el objetivo principal, esperamos que los contratos declarados contribuyan directa o indirectamente al PHP-FIG.