ฉันคิดว่ามันปลอดภัยที่จะบอกว่าเว็บแอปพลิเคชั่นส่วนใหญ่มีพื้นฐานมาจากกระบวนทัศน์คำขอ / การตอบสนอง PHP ไม่เคยมีสิ่งที่เป็นนามธรรมของวัตถุเหล่านี้ กลุ่มหนึ่งพยายามแก้ไขสิ่งนี้: https://github.com/php-fig/fig-standards/blob/master/proposed/http-message.md
อย่างไรก็ตามพวกเขาได้รับการติดตามด้านการเปลี่ยนแปลงไม่ได้ ในอีกด้านหนึ่งวัตถุขอ / ตอบสนองโดยทั่วไปต้องการการเปลี่ยนแปลงเพียงเล็กน้อยระหว่างวงจรชีวิตของพวกเขา ในทางกลับกันวัตถุตอบสนองโดยเฉพาะอย่างยิ่งมักจะต้องการส่วนหัว HTTP ที่จะเพิ่ม
นอกจากนี้ความไม่สามารถเปลี่ยนแปลงได้นั้นไม่เคยเกิดขึ้นในดินแดนของ PHP
ผู้คนเห็นประโยชน์อะไรในการใช้ออบเจ็กต์คำขอ / การตอบสนองที่ไม่เปลี่ยนแปลง
สมมติว่าคุณส่งคืนวัตถุ json
$response = new JsonResponse($item);
ดีและเรียบง่าย แต่ปรากฎว่าการร้องขอนั้นเป็นการร้องขอ Cross-Origin Resource Sharing (CORS) รหัสที่สร้างการตอบสนองไม่ควรสนใจ แต่บางแห่งดาวน์สตรีมเป็นกระบวนการที่จะเพิ่มส่วนหัวควบคุมการเข้าถึงที่จำเป็น มีข้อได้เปรียบใด ๆ ในการรักษาการตอบกลับดั้งเดิมและสร้างขึ้นใหม่ด้วยส่วนหัวเพิ่มเติมหรือไม่ หรือเป็นคำถามเกี่ยวกับสไตล์การเขียนโปรแกรมอย่างเคร่งครัด
วัตถุคำขอมีความน่าสนใจขึ้นอีกเล็กน้อย มันเริ่มต้นเหมือนกัน:
$request = new Request('incoming request information including uri and headers');
ไม่จำเป็นต้องเปลี่ยนข้อมูลเริ่มต้น อย่างไรก็ตามเนื่องจากคำขอผ่านการส่งคำขอไปแล้วมักจะมีความจำเป็นต้องเพิ่มข้อมูลการประมวลผลเพิ่มเติม ตัวอย่างเช่นคุณอาจมีตัวจับคู่ URL ซึ่งเป็นตัวตัดสินว่าการกระทำใดที่ควรดำเนินการสำหรับคำขอที่ได้รับ
$request->setAttribute('action',function() {});
การดำเนินการตามจริงเป็นความรับผิดชอบของกระบวนการสตรีม คุณสามารถมี RequestAttributesCollection ที่ไม่แน่นอนซึ่งล้อมรอบคำขอที่ไม่เปลี่ยนรูป แต่ที่มีแนวโน้มจะค่อนข้างอึดอัดในทางปฏิบัติ คุณสามารถมีคำขอที่ไม่เปลี่ยนรูปยกเว้นการรวบรวมแอตทริบิวต์ ข้อยกเว้นมีแนวโน้มที่จะอึดอัดเช่นกัน มีประสบการณ์เกี่ยวกับการจัดการกับข้อกำหนดประเภทใดบ้าง