Satu set abstraksi yang diekstraksi dari komponen Symfony.
Dapat digunakan untuk membangun semantik yang terbukti berguna oleh komponen Symfony - dan implementasinya sudah teruji.
Paket yang mengimplementasikan kontrak tertentu harus mencantumkannya di bagian "provide" pada file "composer.json", menggunakan konvensi symfony/*-implementation
(misalnya "provide": { "symfony/cache-implementation": "1.0" }
).
Abstraksi dalam paket ini berguna untuk mencapai kopling longgar dan interoperabilitas. Dengan menggunakan antarmuka yang disediakan sebagai petunjuk tipe, Anda dapat menggunakan kembali implementasi apa pun yang sesuai dengan kontraknya. Ini bisa berupa komponen Symfony, atau komponen lain yang disediakan oleh komunitas PHP pada umumnya.
Bergantung pada semantiknya, beberapa antarmuka dapat dikombinasikan dengan pengkabelan otomatis untuk memasukkan layanan ke dalam kelas Anda dengan lancar.
Lainnya mungkin berguna sebagai pelabelan antarmuka, untuk memberi petunjuk tentang perilaku tertentu yang dapat diaktifkan saat menggunakan konfigurasi otomatis atau penandaan layanan manual (atau cara lain apa pun yang disediakan oleh kerangka kerja Anda.)
Jika berlaku, kontrak yang diberikan dibuat di atas PSR PHP-FIG. Namun kelompok ini mempunyai tujuan dan proses yang berbeda. Di sini, kami berfokus pada penyediaan abstraksi yang berguna namun tetap kompatibel dengan implementasi yang disediakan oleh Symfony. Meski bukan target utama, kami berharap kontrak yang diumumkan akan berkontribusi langsung atau tidak langsung terhadap PHP-FIG.