Laravel Service Container Example | Service Container In Laravel In HIndi

Other Blogs

Blogs ❯❯ Laravel

Image could not load

Laravel Service Container

अगर आप Laravel use करते हैं तो आपने documentation में एक word जरूर सुना होगा : Service Container. इस word का मतलब क्या है और क्या impact है इसका सब कुछ जानेंगे इस article में।

What is service container in Laravel ?

Laravel में service container एक powerful tool है जो dependency injection को handle करता है और classes को resolve करता है। ये एक central place है जहाँ dependencies को manage और inject किया जाता है।

What is Dependency Injection ?

Dependency Injection (DI) एक design pattern है जो Inversion of Control (IoC)
को implement करता है। ये pattern dependencies dependencies को खुद से create करने के वजाय class को अपनी dependencies बाहर से लेने के लिए allow करता है।

Laravel में Dependency Injection का use class dependencies और loose coupling achieve करने के लिए extensively use होता है।

Learn more about Dependency Injection ...

How does service container work in Laravel ?

Well , इसके दो main operations होते है -

  1. Binding : पहले , आपको service container को बताना है कि कौन सी class किस dependency को resolve करेगी। जिसे binding कहते है।

  2. Resolving : जब आपको किसी class का instance चाहिए होता है तब service container उस class को resolve करता है और उसकी dependencies को inject करता है।

Laravel Binding & Resolving Example

Binding :

आप एक service provider में किसी class की binding करते हैं , Service provider के register() method में bindings define करते हैं।

suppose हमारे पास App\Services directory में PaymentGateway एक interface है और StripePaymentGateway class है जो PaymentGateway interface को implement करती है। इसकी binding कुछ इस तरह से करेंगे।

हम predefined AppServiceProvider का use कर रहे हैं जो App\Providers directory होता है , हालाँकि आप चाहे तो custom provider बनाकर भी binding कर सकते हैं।

namespace App\Providers; use Illuminate\Support\ServiceProvider; use App\Services\PaymentGateway; use App\Services\StripePaymentGateway; class AppServiceProvider extends ServiceProvider { public function register() { $this->app->bind(PaymentGateway::class, StripePaymentGateway::class); } }

Example में PaymentGateway interface को StripePaymentGateway class से bind किया गया है।

Resolving :

Provider में class bind होने के बाद Laravel automatically resolve करता है जब हम controller में dependency type-hint करते हैं।

namespace App\Http\Controllers; use App\Services\PaymentGateway; class PaymentController extends Controller { protected $paymentGateway; public function __construct(PaymentGateway $paymentGateway) { $this->paymentGateway = $paymentGateway; } public function process() { $this->paymentGateway->charge(); } }

यहां Controller में Laravel container automatically StripePaymentGateway instance को inject कर देगा।

Conclusion

Laravel में service container एक powerful dependency injection tool है जो हमारे code को modular, reusable, और testable बनाता है। ये dependencies को manage करता है और classes को easily resolve करने में help करता है।

Service container के साथ हम अपने application में complex dependencies को आसानी से manage कर सकते हैं।

Recent Blogs

Loading ...

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook

Your Thought ?

Please wait . . .

    0 Comment(s) found !