سریع شروع سیمفونی DI (تزریق وابستگی) خودآموز
وابستگی به تزریق (DI) چیست ؟
تزریق وابستگی به یک تکنیک است که اجازه می دهد تا آزادانه همراه اشیاء در درون یک برنامه نرم افزاری است. به طور کلی اگر یک شی مستلزم دسترسی به قابلیت های دیگر این امر می تواند به نمونه داخلی که منجر به سیستم های محکم همراه است. تزریق وابستگی اجرای تزریق اشیاء مورد نیاز را آماده برای استفاده است (گاهی اوقات نیز به وارونگی کنترل - IOC). نگاهی به مثال زیر:
<؟ پی اچ پی کلاس DecisionMaker { makeDecision تابع عمومی (آرایه $ پارامتر) { / / نیاز به آداپتور پایگاه داده $ DP = جدید DecisionParameters ()؛ $ parameterScore = $ DP-> getScore (پارامترها)؛ / * ... بیشتر منطق تصمیم گیری ... * / بازگشت ($ parameterScore> 50)؛ } }
این قطعه از کد گفته می شود که به محکم به شی DecisionParameters همراه است. بازنویسی بالا را در مد آزادانه همراه می خواهم چیزی را دوست داشته باشند ....
<؟ پی اچ پی کلاس DecisionMaker { خصوصی دلار _dp؛ تابع __ ساخت (DP) { این _dp = $ DP؛ } makeDecision تابع عمومی (آرایه $ پارامتر) { $ parameterScore = $> _dp-> getScore (پارامترها)؛ / * ... بیشتر منطق تصمیم گیری ... * / بازگشت ($ parameterScore> 50)؛ } }
در حالی که به دست آوردن منافع از کد آزادانه همراه ما در حال اضافه کردن پیچیدگی به طوری که هر بار یک جسم نمونه ما نیز به نمونه وابستگیهای آن را بررسی و تصویب این خیلی در. به عنوان مثال، این:
$ انتخاب = DecisionMaker جدید ()؛ اکو انتخاب> makeDecision (آرایه ('تلاش' => 'پایین'، 'بازگشت' => 'بالا'))؛
در حال حاضر می شود:
$ DP = جدید DecisionParameters ()؛ دلار انتخاب = جدید DecisionMaker (DP)؛ اکو انتخاب> makeDecision (آرایه ('تلاش' => 'پایین'، 'بازگشت' => 'بالا'))؛
این وضعیت دردناک تر می شود به عنوان تعدادی از وابستگیها برای یک کلاس افزایش می یابد، و اگر وابستگیهای خود را وابستگیهای چه؟ این کاملا می تواند به سرعت تبدیل به کابوس دولت شی! ظروف تزریق وابستگی (چارچوب) وارد کنید ...
ادامه خواندن "سریع شروع سیمفونی DI (تزریق وابستگی) آموزش '»

















































