"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Bootstrap do contêiner de serviço: primeiros passos

Bootstrap do contêiner de serviço: primeiros passos

Publicado em 2024-08-07
Navegar:403

Service Container Bootstrap: Getting Started

Antes de iniciar o tópico, crie dois novos arquivos no diretório de controladores:

  1. destroy.php que contém o código usado para excluir uma nota do banco de dados.
  2. store.php que contém o código para criar uma nova nota usando formulários e métodos de solicitação.

Introdução ao contêiner de serviço

Um Service Container é um padrão de design que centraliza o gerenciamento de dependências entre objetos, fornecendo uma maneira estruturada de acessar e gerenciar serviços dentro de um aplicativo.

Ele atua como um registro de serviços dentro de um site.

Classe de contêiner

Primeiro crie um arquivo chamado Controller.php no diretório Core. Neste inicialize a classe Container, que é responsável por gerenciar vinculações e resoluções de serviços.

  • bind(): registra um serviço no contêiner.
  • resolve(): recupera um serviço do contêiner.
class Container {
    protected $bindings = [];

    public function bind($key, $resolver) {
        $this->bindings[$key] = $resolver;
    }

    public function resolve($key) {
        if (!array_key_exists($key, $this->bindings)) {
            throw new Exception("No matching binding found for {$key}");
        }
        $resolver = $this->bindings[$key];
        return call_user_func($resolver);
    }
}

Classe de aplicativo

A classe App atua como uma interface para o Container, fornecendo uma interface conveniente para acessar serviços.

  • setContainer(): Define a instância do contêiner para o aplicativo.
  • container(): recupera a instância do contêiner.
  • bind(): registra um serviço no contêiner.
  • resolve(): recupera um serviço do contêiner.
class App {
    protected static $container;

    public static function setContainer($container) {
        static::$container = $container;
    }

    public static function container() {
        return static::$container;
    }

    public static function bind($key, $resolver) {
        static::container()->bind($key, $resolver);
    }

    public static function resolve($key) {
        return static::container()->resolve($key);
    }
}

Inicialização

Bootstrap é um ponto de uma aplicação, onde tudo é configurado e inicializado.

$container = new Container();
$container->bind('Core\Database', function () {
    $config = require base_path('config.php');
    return new Database($config['database']);
});
App::setContainer($container);

Neste, o processo de inicialização:

  1. Cria uma nova instância de Container ($container)
  2. Registra serviços com o contêiner usando o método bind (por exemplo, Core\Database)
  3. Define o contêiner para o aplicativo usando App::setContainer($container)

Controlador

Os serviços podem ser resolvidos a partir do contêiner nos controladores usando o método App::resolve().

$db = App::resolve('Core\Database');

Agora um contêiner de serviço está construído corretamente e você pode ver que o projeto está funcionando bem.

Espero que você tenha entendido claramente.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/ghulam_mujtaba_247/service-container-bootstrap-getting-started-293j?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3