۱۴۰۰/۰۷/۳۰

Constructor-Injection در فریم ورک سیمفونی

Constructor Injection در سیمفونی ۱۳۹۸/۰۶/۲۲

مفهوم Type Hinting  در سیمفونی

طراحی و تعریف درست ایجاد وابستگی های یک کلاس نیازمند این است که  نوع پارامتر های ورودی متد های کلاس بدرستی تعریف شود.روش های مختلفی در فریم ورک سیموفنی وجود دارد که میتوان این وابستگی ها یا پارمترها را  تزریق کرد.یکی از این روش استفاده از service container  است.

Constructor Injection در سیموفنی

متداولترین روش تزریق وابستگی استفاده از سازنده یا Constructor در کلاس ها است.برای اینکار نیاز است یک signature برای آرگومانت Constructor تعریف کنیم.

namespace AppBundle\Mail;
// ...
class NewsletterManager
{
    private $mailer;
    public function __construct(MailerInterface $mailer)
    {
        $this->mailer = $mailer;
    }
    // ...
}

شما میتوانید در تعریف پیکربندی   service container مشخص کنید که چه مقداری کلاس شما باید دریافت کند.

services:
    # ...
    AppBundle\Mail\NewsletterManager:
        arguments: ['@mailer']

با استفاده از Constructor Injection  میتوانید مطمئن باشید که وابستگی که مدنظر دارید به کلاس شما تزریق میشود.با استفاده از این روش اگر وابستگی نامناسب تزریق شود خطای مناسب دریافت میکنید.

استفاده از Constructor Injection چند مزیت دارد :

  • -اگر وابستگی کلاس یک الزام باشد و کلاس نتواند بدون آن به درستی کار کند.با استفاده از Type hinting میتوانید مطمئن باشید که وابستگی مورد نظر حتما با کلاس شما تزریق میشود.
  • -constructor فقط یکبار زمان ایجاد ابجکت ساخته میشود.بنابراین میتوانید مطمئن باشید که وابستگی در طول عمر ابجکت تغییر نخواهد کرد.
  • در  Constructor Injection  از مفهوم  Type hinting در PHP استفاده شده .اگر در حین توسعه نرم افزار با استفاده از زبان پی اچ پی نیاز است پارامتر های ورودی متد یا فانکشن از نوع خاصی باشد .به این وسیله پارامتر ورودی باید ابجکتی از روی کلاس مدنظر باشد.برای اجرای این سناریو در زبان php از این مفهوم استفاده میشود.


    رای :

    Type Hinting

    symfony framework

    Constructor Injection

    فریم ورک سیموفنی

    ارسال نظر
    Copyright © All right reserved.