Lithe
Posted on November 15, 2024
Have you ever wondered how to simplify complex functionalities in PHP in an elegant and reusable way? We present Orbis, a revolutionary tool that transforms the way we manage instances and abstractions in PHP.
What is Orbis? π€
Orbis is a powerful class that acts as a global instance manager, allowing you to abstract complex functionalities into simple, reusable components. Imagine being able to encapsulate all routing, configuration, and state management logic in a single line of code!
The Magic Behind Orbis β¨
To understand the true power of Orbis, let's look at a real example from the Lithe framework:
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);
}
This seemingly simple code hides an incredibly powerful functionality. Orbis allows:
- Each file to have its own router.
- Routes to be automatically managed and organized.
- No conflicts between different parts of the application.
A Practical Example That Will Surprise You π
Let's create a smart cache system using 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;
}
}
// Registering different instances for different contexts
Orbis::register(new SmartCache(), 'user.cache');
Orbis::register(new SmartCache(), 'product.cache');
// Anywhere in your application
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}");
}
Why Is This Revolutionary? π
- Automatic Isolation: Each context has its own cache instance.
- Zero Configuration: No need to configure anything in bootstrap or providers.
- Integrated Analytics: Automatic tracking of cache usage.
- Optimized Performance: Instances are automatically reused.
Using Orbis in Your Project
Installation via Composer:
composer require lithemod/orbis
Basic Example:
// Register an instance
Orbis::register(MyClass::class);
// Use it anywhere
$instance = Orbis::instance(MyClass::class);
Conclusion π―
Orbis is not just another dependency management library β itβs a new way of thinking about abstraction and code reuse in PHP. With it, you can:
- Simplify complex code.
- Improve project organization.
- Reduce coupling between components.
- Make testing and maintenance easier.
Try Orbis today and discover how it can transform your PHP code into something truly magical! β¨
To understand more about how Orbis works, read the post How to Use Orbis to Simplify Your PHP Code and discover its potential in practice!
Posted on November 15, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.