เริ่ม Symfony ด่วนสอน DI (พึ่งพาการฉีด)
อะไรคือสิ่งที่ พึ่งพาการฉีด (DI)?
ฉีดอยู่เป็นเทคนิคที่ช่วยให้สำหรับวัตถุคู่อย่างอิสระภายในโปรแกรมซอฟแวร์ โดยทั่วไปถ้าวัตถุต้องเข้าถึงฟังก์ชันการทำงานของผู้อื่นก็จะสามารถ instantiated ภายในที่นำไปสู่ระบบคู่แน่น โดยการฉีดอยู่ที่การดำเนินการที่เราฉีดวัตถุที่จำเป็นพร้อมใช้งาน (บางครั้งยังเรียกผกผันของการควบคุม - IOC) นำตัวอย่างต่อไปนี้:
<? PHP DecisionMaker คลาส { makeDecision ฟังก์ชันสาธารณะ ($ array พารามิเตอร์) { / / ต้องการอะแดปเตอร์ฐานข้อมูล $ DP = new DecisionParameters (); $ = $ parameterScore DP-> getScore (พารามิเตอร์ $); / * ... ตรรกะการตัดสินใจบางคนอื่น ๆ ... * / ผลตอบแทน ($ parameterScore> 50); } }
ชิ้นส่วนของรหัสนี้จะกล่าวจะคู่แน่นกับวัตถุที่ DecisionParameters เขียนใหม่ดังกล่าวข้างต้นในแฟชั่นคู่อย่างอิสระที่เราต้องการมีบางอย่างเช่น ....
<? PHP DecisionMaker คลาส { ส่วนตัว $ _dp; ฟังก์ชั่น __ สาธารณะโครงสร้าง ($ DP) { $ this-> _dp = $ DP; } makeDecision ฟังก์ชันสาธารณะ ($ array พารามิเตอร์) { $ parameterScore = $ this-> _dp-> getScore (พารามิเตอร์ $); / * ... ตรรกะการตัดสินใจบางคนอื่น ๆ ... * / ผลตอบแทน ($ parameterScore> 50); } }
ขณะที่การดึงดูดประโยชน์ของรหัสคู่อย่างอิสระเราจะเพิ่มความซับซ้อนดังกล่าวว่าแต่ละครั้งที่วัตถุเป็น instantiated เรายังมีการยกตัวอย่างการอ้างอิงและผ่านการเหล่านี้ในมากเกินไป ตัวอย่างเช่นนี้:
ทางเลือกที่ $ = DecisionMaker ใหม่ (); echo $ choice-> makeDecision (array ('พยายาม' => 'ต่ำ', 'กลับ' => 'สูง'));
ตอนนี้กลายเป็น:
$ DP = new DecisionParameters (); ทางเลือกที่ $ = new DecisionMaker ($ DP); echo $ choice-> makeDecision (array ('พยายาม' => 'ต่ำ', 'กลับ' => 'สูง'));
สถานการณ์เช่นนี้จะกลายเป็นความเจ็บปวดมากขึ้นเป็นตัวเลขของการอ้างอิงสำหรับการเรียนจะเพิ่มขึ้นและสิ่งที่ถ้าการอ้างอิงตัวเองมีการอ้างอิง? นี้ค่อนข้างได้อย่างรวดเร็วสามารถกลายเป็นฝันร้ายบริหารวัตถุ! ใส่ภาชนะที่ฉีดอยู่ (หรือกรอบ) ...
อ่านต่อ 'Start Symfony ด่วนสอน DI (พึ่งพาการฉีด)' »

















































