Orb
A classe `Orb` é uma parte essencial do sistema Lithe, projetada para gerenciar instâncias de classes de forma eficiente e organizada. Ela permite encapsular instâncias, possibilitando que sejam facilmente acessadas e reutilizadas em diferentes partes da aplicação. Com o uso da classe `Orb`, você pode evitar a criação redundante de objetos, garantindo que cada instância seja registrada e acessada de maneira controlada.
Registrando Instâncias
O método register
é responsável por criar ou registrar uma instância da classe especificada. Ele aceita o nome da classe (ou uma instância já existente) e um parâmetro opcional para a chave de registro. Isso é especialmente útil para garantir que você tenha um único ponto de acesso para cada instância, facilitando a gestão de dependências.
// Registrando uma nova instância da classe User
Lithe\Orbs\Orb::register(User::class);
// Registrando uma instância existente
$userInstance = new User();
Lithe\Orbs\Orb::register($userInstance);
Com isso, a instância da classe User
pode ser acessada a partir de qualquer lugar na aplicação, permitindo um design mais coeso e modular.
Obtendo Instâncias
Para acessar uma instância previamente registrada, você pode usar o método instance
. Ele recebe a chave correspondente à instância desejada e pode opcionalmente desregistrar a instância ao mesmo tempo. Isso é útil em cenários onde você deseja garantir que a instância não será mais utilizada após o seu uso.
// Obtendo a instância da classe User
$userInstance = Lithe\Orbs\Orb::instance(User::class);
// Obtendo e desregistrando a instância
$anotherInstance = Lithe\Orbs\Orb::instance(User::class, true);
Dessa forma, você tem controle total sobre a vida útil das instâncias na sua aplicação.
Removendo Instâncias
Caso você precise remover uma instância registrada, utilize o método unregister
. Isso é útil para liberar memória ou para garantir que uma instância não seja mais acessível após sua utilização.
// Removendo a instância da classe User
Lithe\Orbs\Orb::unregister(User::class);
Esse método evita que instâncias desnecessárias permaneçam na memória, contribuindo para uma aplicação mais eficiente.
A classe Orb
fornece uma maneira prática e eficiente de gerenciar instâncias de classes em sua aplicação Lithe. Com métodos como register
, instance
e unregister
, você pode garantir que suas instâncias sejam encapsuladas e acessíveis de forma controlada, melhorando a organização e a modularidade do seu código.
Utilizar a classe Orb
é uma estratégia eficaz para o gerenciamento de dependências, promovendo um design de software mais limpo e escalável.