If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
Laravel में , Service Providers application के bootstrapping का primary way है। ये वो classes हैं जो application की services को bind और register करती हैं।
Service Providers को app/Providers
directory me store किया जाता है।
Laravel default service providers के साथ आता है , जो framework के different components को bootstrapped (prepare) करते हैं। आप अपने custom service providers भी बना सकते हैं।
और इस article में सीखेंगे भी कि कैसे custom service बनाते हैं।
●●●
Service Providers दो primary functions perform करते हैं -
Service Binding : Dependencies को service container me bind करता है।
Service Bootstrapping : Dependencies को resolve और configure करता है।
●●●
अब हम एक custom service को खुद का service provider भी बनाएंगे।
suppose हमें किसी order के लिए payment process करना है। उसके लिए service
और provider
को नीचे दिए गए steps को follow करके बना सकते हैं।
पहले , आपको एक service
class बनानी होगी , इसे आप app/Services
directory में रखेंगे।
mkdir app/Services
example के लिए , हम PaymentService
class बना रहे हैं -
namespace App\Services;
class PaymentService
{
public function processPayment($amount)
{
// Payment processing logic here
return "Processing payment of $amount.";
}
}
Next, आपको service provider बनाना होगा , Service provider में आप अपनी service को container
के साथ register करते हैं। ताकि Laravel automatically dependency inject और resolve कर सके।
php artisan make:provider PaymentServiceProvider
इससे PaymentServiceProvider
class generate होगी जो app/Providers
directory में होगी , जिसमे नीचे दिया गए code रखेंगे -
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Services\PaymentService;
class PaymentServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(PaymentService::class, function ($app) {
return new PaymentService();
});
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
}
}
Service provider को register करने के लिए config/app.php
file में providers array में PaymentServiceProvider
class को add करें।
'providers' => [
// Other Service Providers
App\Providers\PaymentServiceProvider::class,
],
अब आप अपनी custom service और provider को application के किसी भी part में use कर सकते हैं , Example के लिए हम इसे एक controller में कुछ इस तरह से access कर सकते हैं।
namespace App\Http\Controllers;
use App\Services\PaymentService;
class PaymentController extends Controller
{
protected $paymentService;
public function __construct(PaymentService $paymentService)
{
$this->paymentService = $paymentService;
}
public function process($amount)
{
$result = $this->paymentService->processPayment($amount);
return response()->json(['message' => $result]);
}
}
__construct()
में , laravel आपके provider के लिए automatically class को resolve करके आपको PaymentService
class का object return करेगा।
आप PaymentController
के process method को किसी भी route के साथ bind कर सकते हैं।
// web/routes.php
use App\Http\Controllers\PaymentController;
Route::get('/process-payment/{amount}', [PaymentController::class, 'process']);
●●●
Laravel में custom service और provider create और use करना straightforward process है। Service को create करे , service provider के through register करते हैं और फिर dependency injection का use करके service को किसी भी controller या class में inject कर सकते हैं।
●●●
Loading ...