वापरण्यासाठी Service Container आणि Dependency Injection मध्ये मार्गदर्शक Laravel

Service Container आणि Dependency Injection या दोन महत्त्वाच्या संकल्पना आहेत Laravel ज्या तुम्हाला अवलंबित्व आणि तुमच्या सोर्स कोडची रचना कार्यक्षमतेने व्यवस्थापित करण्यात मदत करतात. खाली ते वेगवेगळ्या परिस्थितींमध्ये कसे वापरायचे ते खाली दिले आहे:

सुसिंग Service Container

इन लवचिकपणे वस्तूंचे व्यवस्थापन आणि प्रदान करण्यात मदत करते Service Container. Laravel हे कसे वापरायचे ते येथे आहे Service Container:

ऑब्जेक्टची नोंदणी करणे: bind ऑब्जेक्टमध्ये नोंदणी करण्यासाठी पद्धत वापरा Service Container.

app()->bind('userService', function() {  
    return new UserService();  
});  

ऑब्जेक्टमध्ये प्रवेश करणे: जेव्हा आपल्याला ऑब्जेक्ट वापरण्याची आवश्यकता असेल तेव्हा आपण Service Container नोंदणीकृत नाव वापरून ते पुनर्प्राप्त करू शकता.

$userService = app('userService');

वापरत आहे Dependency Injection

Dependency Injection अवलंबित्व कमी करते आणि तुमचा कोड अधिक वाचनीय बनवते. कसे वापरायचे ते येथे आहे Dependency Injection:

द्वारे अवलंबित्व घोषित करणे Constructor: ज्या वर्गात तुम्हाला अवलंबित्व वापरायचे आहे, त्या द्वारे घोषित करा constructor. Laravel ऑब्जेक्ट सुरू करताना आपोआप अवलंबित्व इंजेक्ट करेल.

class UserController extends Controller  
{  
    protected $userService;  
  
    public function __construct(UserService $userService)  
    {  
        $this->userService = $userService;  
    }  
}  

पद्धतीद्वारे अवलंबित्व इंजेक्ट करणे Setter: तुम्ही setter पद्धतींद्वारे अवलंबित्व देखील इंजेक्ट करू शकता. Laravel अवलंबित्व इंजेक्ट करण्यासाठी या पद्धती आपोआप कॉल करेल.

class UserController extends Controller  
{  
    protected $userService;  
  
    public function setUserService(UserService $userService)  
    {  
        $this->userService = $userService;  
    }  
}  

निष्कर्ष

वापरणे Service Container आणि Dependency Injection आपल्याला Laravel अवलंबित्व आणि स्त्रोत कोड रचना प्रभावीपणे व्यवस्थापित करण्यात मदत करते. ही तत्त्वे लागू करून, तुम्ही तुमच्या अॅप्लिकेशनच्या विकासादरम्यान लवचिक, देखरेख करण्यायोग्य आणि सहज विस्तारण्यायोग्य कोड तयार करू शकता Laravel.