Saya pikir aman untuk mengatakan bahwa sebagian besar aplikasi web didasarkan pada paradigma permintaan / respons. PHP tidak pernah memiliki abstraksi formal dari objek-objek ini. Satu grup sedang mencoba untuk mengubah ini: https://github.com/php-fig/fig-standards/blob/master/proposed/http-message.md
Namun, mereka semacam dilacak tentang masalah ketidakberdayaan. Di satu sisi, objek permintaan / respons umumnya membutuhkan sedikit perubahan selama siklus hidupnya. Di sisi lain, objek respons khususnya sering perlu header HTTP untuk ditambahkan.
Selain itu, ketidakberdayaan tidak pernah benar-benar tertangkap di tanah PHP.
Keuntungan apa yang dilihat orang dalam menggunakan objek permintaan / respons tidak berubah?
Misalkan Anda mengembalikan objek json.
$response = new JsonResponse($item);
Bagus dan sederhana. Tapi ternyata permintaan itu adalah permintaan Berbagi Sumber Daya Lintas Alam (CORS). Kode yang menghasilkan respons seharusnya tidak peduli tetapi di suatu tempat hilir adalah proses yang akan menambahkan header Access-Control yang diperlukan. Adakah manfaat untuk mempertahankan respons asli dan membuat yang baru dengan header tambahan? Atau apakah ini semata-mata masalah gaya pemrograman.
Objek permintaan sedikit lebih menarik. Mulai dari yang sama:
$request = new Request('incoming request information including uri and headers');
Informasi awal tidak perlu diubah. Namun, ketika permintaan diteruskan, seringkali ada kebutuhan untuk menambahkan informasi pemrosesan tambahan. Misalnya, Anda mungkin memiliki pencocokan url yang memutuskan tindakan apa yang harus dilakukan untuk permintaan yang diberikan.
$request->setAttribute('action',function() {});
Sebenarnya melaksanakan tindakan adalah tanggung jawab proses hilir. Anda bisa memiliki RequestAttributesCollection yang bisa berubah yang membungkus permintaan yang tidak dapat diubah tetapi itu cenderung agak canggung dalam praktiknya. Anda juga dapat memiliki permintaan yang tidak dapat diubah kecuali untuk koleksi atribut. Pengecualian cenderung canggung juga. Adakah pengalaman dalam berurusan dengan persyaratan semacam ini?