Çoğu web uygulamasının istek / yanıt paradigmasına dayandığını söylemek güvenli olduğunu düşünüyorum. PHP hiçbir zaman bu nesnelerin resmi bir soyutlamasına sahip olmamıştır. Bir grup bunu değiştirmeye çalışıyor: https://github.com/php-fig/fig-standards/blob/master/proposed/http-message.md
Ancak, değişmezlik konusunda bir bakıma yan izler aldı. Bir yandan, istek / yanıt nesnesinin yaşam döngüleri boyunca genellikle çok az değişikliğe ihtiyacı vardır. Öte yandan, yanıt nesnesinin özellikle HTTP üstbilgilerinin eklenmesi gerekir.
Dahası, PHP ülkesinde değişmezlik asla gerçekten yakalanmadı.
İnsanlar değişmez istek / yanıt nesnelerini kullanırken ne gibi avantajlar görüyor?
Bir json nesnesi döndürdüğünüzü varsayalım.
$response = new JsonResponse($item);
Güzel ve basit. Ancak, isteğin bir Kaynaklar Arası Kaynak Paylaşımı (CORS) isteği olduğu ortaya çıktı. Yanıtı üreten kod umursamaz ancak akış aşağısında gerekli Erişim-Denetim başlıklarını ekleyen bir işlemdir. Orijinal yanıtı tutmanın ve ek başlıklarla yeni bir yanıt oluşturmanın herhangi bir avantajı var mı? Yoksa kesinlikle bir programlama tarzı meselesi.
İstek nesnesi biraz daha ilginç. Aynı başlar:
$request = new Request('incoming request information including uri and headers');
İlk bilgilerin değiştirilmesi gerekmez. Bununla birlikte, istek iletilirken, genellikle ek işleme bilgileri ekleme ihtiyacı vardır. Örneğin, belirli bir istek için hangi işlemin gerçekleştirilmesi gerektiğine karar veren bir URL eşleştiriciniz olabilir.
$request->setAttribute('action',function() {});
Aslında eylemin yürütülmesi, aşağı akış sürecinin sorumluluğundadır. Değişmez isteği saran ancak pratikte biraz garip olma eğiliminde olan değiştirilebilir bir RequestAttributesCollection'a sahip olabilirsiniz. Öznitelik koleksiyonu dışında değiştirilemeyen bir isteğiniz de olabilir. İstisnalar da garip olma eğilimindedir. Bu tür gereksinimlerle başa çıkmak konusunda deneyiminiz var mı?