DEV Community

Lithe
Lithe

Posted on

2 1

Orbis: A Magia da Abstração em PHP

Você já se perguntou como simplificar funcionalidades complexas em PHP de uma forma elegante e reutilizável? Apresentamos o Orbis, uma ferramenta revolucionária que transforma a maneira como gerenciamos instâncias e abstrações em PHP.

O Que é o Orbis? 🤔

Orbis é uma classe poderosa que atua como um gerenciador de instâncias global, permitindo que você abstraia funcionalidades complexas em componentes simples e reutilizáveis. Imagine poder encapsular toda a lógica de roteamento, configuração e gerenciamento de estado em uma única linha de código!

A Magia por Trás do Orbis ✨

Para entender o verdadeiro poder do Orbis, vamos analisar um exemplo real do framework Lithe:

function get(string $path, callable|array ...$handler): void {
    $caller = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1)[0];
    $key = strtolower($caller['file']);

    $router = Orbis::instance($key);
    if (!$router instanceof Router) {
        throw new Exception("Invalid router instance: Router not found");
    }

    $router->get($path, ...$handler);
}
Enter fullscreen mode Exit fullscreen mode

Este código aparentemente simples esconde uma funcionalidade incrivelmente poderosa. O Orbis permite que:

  1. Cada arquivo tenha seu próprio router
  2. As rotas sejam automaticamente gerenciadas e organizadas
  3. Não haja conflitos entre diferentes partes da aplicação

Um Exemplo Prático que vai te Surpreender 🚀

Vamos criar um sistema de cache inteligente usando Orbis:

class SmartCache {
    private array $storage = [];
    private array $analytics = [];

    public function set(string $key, mixed $value, int $ttl = 3600): void {
        $this->storage[$key] = [
            'value' => $value,
            'expires' => time() + $ttl,
            'hits' => 0
        ];
    }

    public function get(string $key): mixed {
        if (!isset($this->storage[$key])) {
            return null;
        }

        if (time() > $this->storage[$key]['expires']) {
            unset($this->storage[$key]);
            return null;
        }

        $this->storage[$key]['hits']++;
        $this->analytics[$key] = ($this->analytics[$key] ?? 0) + 1;

        return $this->storage[$key]['value'];
    }

    public function getAnalytics(): array {
        return $this->analytics;
    }
}

// Registrando diferentes instâncias para diferentes contextos
Orbis::register(new SmartCache(), 'user.cache');
Orbis::register(new SmartCache(), 'product.cache');

// Em qualquer lugar da sua aplicação
function cacheUser(User $user): void {
    $cache = Orbis::instance('user.cache');
    $cache->set("user.{$user->id}", $user);
}

function getUser(int $id): ?User {
    $cache = Orbis::instance('user.cache');
    return $cache->get("user.{$id}");
}
Enter fullscreen mode Exit fullscreen mode

Por que Isso é Revolucionário? 🌟

  1. Isolamento Automático: Cada contexto tem sua própria instância de cache
  2. Zero Configuração: Não precisa configurar nada em bootstrap ou providers
  3. Análise Integrada: Rastreamento automático de uso do cache
  4. Performance Otimizada: Instâncias são reutilizadas automaticamente

Usando Orbis no Seu Projeto

Instalação via Composer:

composer require lithemod/orbis
Enter fullscreen mode Exit fullscreen mode

Exemplo Básico:

// Registre uma instância
Orbis::register(MyClass::class);

// Use em qualquer lugar
$instance = Orbis::instance(MyClass::class);
Enter fullscreen mode Exit fullscreen mode

Conclusão 🎯

Orbis não é apenas mais uma biblioteca de gerenciamento de dependências - é uma nova forma de pensar sobre abstração e reutilização de código em PHP. Com ele, você pode:

  • Simplificar código complexo
  • Melhorar a organização do projeto
  • Reduzir acoplamento entre componentes
  • Facilitar testes e manutenção

Experimente o Orbis hoje e descubra como ele pode transformar seu código PHP em algo verdadeiramente mágico! ✨

Para entender melhor como o Orbis funciona, leia o post Como Usar Orbis para Simplificar Seu Código PHP e descubra seu potencial na prática!

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (2)

Collapse
 
mariocoxe0 profile image
Mário Coxe

Orbis parece realmente incrível para abstrair e gerenciar complexidades no PHP de maneira elegante! Gostei particularmente da abordagem de isolamento automático e da facilidade de uso sem precisar de configuração pesada.

Collapse
 
lithephp profile image
Lithe

Obrigado pelo feedback! 🎉 O Orbis foi pensado justamente para simplificar a vida dos desenvolvedores, oferecendo uma abordagem intuitiva e focada na produtividade. Ficamos felizes que tenha gostado do isolamento automático e da simplicidade na configuração — acreditamos que essas características realmente ajudam a manter o código limpo e organizado. Se tiver sugestões ou dúvidas, estamos aqui para ouvir!

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay