Wenn Sie das Laravel-Framework verwendet haben, ist es unmöglich, dass Sie noch nichts von Service Container und Service Provider gehört haben. Tatsächlich sind sie der Kern des Lavavel-Frameworks und übernehmen die schwierige Aufgabe, Dienste in Larvel-Anwendungen zu starten.
In diesem Artikel stellen wir Ihnen vor Was ist der Dienstleister von Laravel?
Bevor wir uns mit den Dienstanbietern befassen, stellen wir kurz vor: Dienstcontainer werden häufig bei Dienstanbietern verwendet.
Kurz gesagt ist der Laravel-Service-Container eine Box, in der gebundene Komponenten gespeichert werden und die von der Anwendung benötigten Dienste bereitgestellt werden.Die Laravel-Dokumentation beschreibt es wie folgt:
Laravel 服务容器是用于管理类的依赖和执行依赖注入的工具 - Laravel 文档
Schauen wir uns ein einfaches Beispiel an, um unser Verständnis zu vertiefen.
<?php Class SomeClass { public function __construct(FooBar $foobarObject) { // use $foobarObject object } }
Konfigurationsdatei. Sie finden eine Liste der Dienstanbieterkonfigurationen, die beim Start der Laravel-Anwendung geladen werden. config/app.php
'providers' => [ /* * Laravel Framework Service Providers... */ Illuminate\Auth\AuthServiceProvider::class, Illuminate\Broadcasting\BroadcastServiceProvider::class, Illuminate\Bus\BusServiceProvider::class, Illuminate\Cache\CacheServiceProvider::class, Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, Illuminate\Cookie\CookieServiceProvider::class, Illuminate\Database\DatabaseServiceProvider::class, Illuminate\Encryption\EncryptionServiceProvider::class, Illuminate\Filesystem\FilesystemServiceProvider::class, Illuminate\Foundation\Providers\FoundationServiceProvider::class, Illuminate\Hashing\HashServiceProvider::class, Illuminate\Mail\MailServiceProvider::class, Illuminate\Notifications\NotificationServiceProvider::class, Illuminate\Pagination\PaginationServiceProvider::class, Illuminate\Pipeline\PipelineServiceProvider::class, Illuminate\Queue\QueueServiceProvider::class, Illuminate\Redis\RedisServiceProvider::class, Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, Illuminate\Session\SessionServiceProvider::class, Illuminate\Translation\TranslationServiceProvider::class, Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, /* * Package Service Providers... */ Laravel\Tinker\TinkerServiceProvider::class, /* * Application Service Providers... */ App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, // App\Providers\BroadcastServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, ],
Was ist ein Dienstanbieter?
Wenn der Dienstcontainer ein Tool ist, das Bindung und Abhängigkeitsinjektion bereitstellt, dann ist ein Dienstanbieter ein Tool, das die Bindung implementiert. Sehen wir uns zunächst einen Inhaltsanbieterdienst an, um zu verstehen, wie er funktioniert. Öffnen Sie die Datei. vender/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php
public function register() { $this->app->singleton('cache', function ($app) { return new CacheManager($app); }); $this->app->singleton('cache.store', function ($app) { return $app['cache']->driver(); }); $this->app->singleton('memcached.connector', function () { return new MemcachedConnector; }); }
, cache
und cache.store
. memcached.connector
zugegriffen werden kann. $this->app
-Konfigurationsdatei gelesen wird. config/app.php
Erste Schritte mit Laravel Framework.
Das obige ist der detaillierte Inhalt vonWas ist der Dienstleister von Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!