Laravel est un framework PHP populaire largement utilisé pour le développement d'applications Web. Vous pouvez rapidement créer une application Web efficace à l'aide du framework Laravel. Les conteneurs sont un concept très important dans Laravel. Container est un conteneur de services dans Laravel, utilisé pour gérer les classes dans toutes les applications, en particulier les fournisseurs de services et les classes d'injection de dépendances. Dans Laravel, une méthode très importante du conteneur est la méthodebuild()
.build()
方法。
在 Laravel 框架中,容器是一个非常重要的概念,它用于管理应用程序中的类实例。Laravel 将所有的类都注册到容器中,从而可以方便地管理这些类。在容器中,Laravel 会自动解决类之间的依赖关系,可以非常方便地使用类。
在 Laravel 中,使用容器的时候,我们通常要使用容器的构造方法。这个方法的作用是创建一个新的容器实例。在创建容器实例的时候,我们可以向构造方法中传入服务提供者对象,这样,容器就会自动注册并解析服务提供者中的服务。
use Illuminate\Container\Container; $container = new Container();
在 Laravel 中,可以使用容器的make()
方法来获取容器中已经注册的服务。例如:
$app = $container->make('Illuminate\Contracts\Foundation\Application');
在 Laravel 中,容器中一个非常重要的方法就是build()
方法。build()
方法的作用是用于创建一个新的类实例。在创建类实例的时候,容器会自动解析这个类的构造方法,并将其需要的参数都自动解析出来。
build()
方法的语法如下:
/** * Resolve the given type from the container. * * @param string $abstract * @param array $parameters * @return mixed */ public function build($abstract, array $parameters = array());
在使用build()
方法的时候,我们需要传入一个抽象类或者接口名作为参数,容器会尝试创建这个类的实例。如果这个类的构造方法需要依赖其他类,则容器会自动解析这些依赖关系。
例如,我们有一个服务提供者类AppProvidersLoggerServiceProvider
,其中有一个方法register()
,这个方法会将一个日志实例注册到容器中:
use App\Loggers\DatabaseLogger; class LoggerServiceProvider extends ServiceProvider { public function register() { $this->app->singleton('logger', function ($app) { return new DatabaseLogger($app->make('Illuminate\Database\ConnectionInterface')); }); } }
在上面的代码中,我们使用singleton()
方法将一个日志实例注册到容器中,并指定了这个日志实例依赖于IlluminateDatabaseConnectionInterface
接口。当容器创建日志实例的时候,就会自动解析这个依赖。
我们可以使用容器的make()
方法来获取这个日志实例:
$logger = $container->make('logger');
在上面的代码中,容器会自动解析DatabaseLogger
类,并将IlluminateDatabaseConnectionInterface
接口注入到这个类中,最后返回一个日志实例。
在 Laravel 应用程序中,容器是非常重要的一个概念。使用容器可以方便地管理应用程序中的类实例,并且可以自动解析类之间的依赖关系。在使用容器的时候,build()
make()
du conteneur pour obtenir les services enregistrés dans le conteneur. Par exemple : rrreee
build()
. La méthode
build()
est utilisée pour créer une nouvelle instance de classe. Lors de la création d'une instance de classe, le conteneur analysera automatiquement le constructeur de la classe et tous les paramètres dont elle a besoin. La syntaxe de la méthode
build()
est la suivante : rrreeeLors de l'utilisation de la méthode
build()
, nous devons transmettre une classe abstraite ou un nom d'interface en tant que paramètre, le conteneur tentera de créer une instance de cette classe. Si le constructeur de cette classe doit dépendre d'autres classes, le conteneur résoudra automatiquement ces dépendances. Par exemple, nous avons une classe de fournisseur de services
AppProvidersLoggerServiceProvider
, qui a une méthode
register()
, qui enregistrera une instance de journal dans le conteneur : rrreee Dans le ci-dessus, nous utilisons la méthode
singleton()
pour enregistrer une instance de journal dans le conteneur et spécifions que cette instance de journal dépend de l'interface
IlluminateDatabaseConnectionInterface
. Lorsque le conteneur crée une instance de journal, il résout automatiquement cette dépendance. Nous pouvons utiliser la méthode
make()
du conteneur pour obtenir cette instance de journal : rrreeeDans le code ci-dessus, le conteneur analysera automatiquement la classe
DatabaseLogger
et IlluminateDatabaseConnectionInterface est injectée dans cette classe et renvoie enfin une instance de journal.
build()
est une méthode très importante pour créer des instances de classe et résoudre automatiquement les dépendances dans leurs constructeurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!