Service Container este instrumentul fundamental care gestionează crearea și injectarea dependințelor în întreaga aplicație Laravel.
În interiorul unui Service Provider (în metoda register()), poți declara modul în care containerul trebuie să instanțieze o clasă:
app()->bind(): Creează o instanță nouă de fiecare dată când serviciul este solicitat.app()->singleton(): Creează o singură instanță partajată pe durata întregului ciclu de viață al cererii (Singleton).
Exemplu: Legarea unei interfețe de o implementare concretă în AppServiceProvider
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Services\PaymentGateway;
use App\Services\StripePaymentGateway;
class AppServiceProvider extends ServiceProvider
{
public function register(): void
{
// Oriunde este cerută interfața PaymentGateway, containerul va injecta StripePaymentGateway:
$this->app->singleton(PaymentGateway::class, function ($app) {
return new StripePaymentGateway(config('services.stripe.secret'));
});
}
}
Întrebări & Exemple de Cod:
Service Container: Înregistrarea Manuală cu bind() și singleton()Ai o nelămurire despre utilizarea comenzii
Service Container: Înregistrarea Manuală cu bind() și singleton()sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.