Um conjunto de abstrações extraídas dos componentes do Symfony.
Pode ser usado para construir semânticas que os componentes do Symfony provaram ser úteis - e que já possuem implementações testadas em batalha.
Pacotes que implementam contratos específicos devem listá-los na seção "provide" de seu arquivo "composer.json", usando a convenção symfony/*-implementation
(por exemplo "provide": { "symfony/cache-implementation": "1.0" }
).
As abstrações neste pacote são úteis para obter baixo acoplamento e interoperabilidade. Ao usar as interfaces fornecidas como dicas de tipo, você poderá reutilizar quaisquer implementações que correspondam aos seus contratos. Poderia ser um componente do Symfony ou outro fornecido pela comunidade PHP em geral.
Dependendo de sua semântica, algumas interfaces podem ser combinadas com autowiring para injetar perfeitamente um serviço em suas classes.
Outros podem ser úteis como interfaces de rotulagem, para sugerir um comportamento específico que pode ser ativado ao usar a configuração automática ou marcação manual de serviço (ou qualquer outro meio fornecido pela sua estrutura).
Quando aplicável, os contratos fornecidos são construídos com base nos PSRs do PHP-FIG. Mas o grupo tem objetivos e processos diferentes. Aqui, estamos nos concentrando em fornecer abstrações que sejam úteis por si só e ao mesmo tempo compatíveis com implementações fornecidas pelo Symfony. Embora não seja o alvo principal, esperamos que os contratos declarados contribuam direta ou indiretamente para o PHP-FIG.