Eine Reihe von Abstraktionen, die aus den Symfony-Komponenten extrahiert wurden.
Kann verwendet werden, um auf Semantiken aufzubauen, bei denen sich die Symfony-Komponenten als nützlich erwiesen haben – und die bereits über kampferprobte Implementierungen verfügen.
Pakete, die bestimmte Verträge implementieren, sollten diese im Abschnitt „provide“ ihrer „composer.json“-Datei auflisten und dabei die symfony/*-implementation
Konvention verwenden (z. B. "provide": { "symfony/cache-implementation": "1.0" }
).
Die Abstraktionen in diesem Paket sind nützlich, um eine lose Kopplung und Interoperabilität zu erreichen. Durch die Verwendung der bereitgestellten Schnittstellen als Typhinweise können Sie alle Implementierungen wiederverwenden, die ihren Verträgen entsprechen. Es könnte sich um eine Symfony-Komponente handeln oder um eine andere, die von der gesamten PHP-Community bereitgestellt wird.
Abhängig von ihrer Semantik können einige Schnittstellen mit Autowiring kombiniert werden, um einen Dienst nahtlos in Ihre Klassen einzubinden.
Andere können als Beschriftungsschnittstellen nützlich sein, um auf ein bestimmtes Verhalten hinzuweisen, das bei Verwendung der automatischen Konfiguration oder der manuellen Dienstkennzeichnung (oder einer anderen von Ihrem Framework bereitgestellten Möglichkeit) aktiviert werden könnte.
Sofern zutreffend, basieren die bereitgestellten Verträge auf den PSRs von PHP-FIG. Aber die Gruppe hat unterschiedliche Ziele und unterschiedliche Prozesse. Hier konzentrieren wir uns auf die Bereitstellung von Abstraktionen, die für sich genommen nützlich sind und dennoch mit den von Symfony bereitgestellten Implementierungen kompatibel sind. Obwohl dies nicht das Hauptziel ist, hoffen wir, dass die deklarierten Verträge direkt oder indirekt zum PHP-FIG beitragen.