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 यी सिद्धान्तहरू लागू गरेर, तपाईं आफ्नो अनुप्रयोगहरूको विकासको क्रममा लचिलो, मर्मतयोग्य, र सजिलैसँग विस्तार गर्न मिल्ने कोड सिर्जना गर्न सक्नुहुन्छ।