46 lines
802 B
PHP
46 lines
802 B
PHP
|
<?php
|
||
|
|
||
|
namespace Modules\Support;
|
||
|
|
||
|
abstract class Manager
|
||
|
{
|
||
|
private $drivers = [];
|
||
|
|
||
|
public function all()
|
||
|
{
|
||
|
return collect($this->drivers);
|
||
|
}
|
||
|
|
||
|
public function names()
|
||
|
{
|
||
|
return array_keys($this->drivers);
|
||
|
}
|
||
|
|
||
|
public function get($name)
|
||
|
{
|
||
|
return array_get($this->drivers, $name);
|
||
|
}
|
||
|
|
||
|
public function register($name, $driver)
|
||
|
{
|
||
|
$this->drivers[$name] = is_callable($driver) ? call_user_func($driver) : $driver;
|
||
|
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
public function count()
|
||
|
{
|
||
|
return count($this->drivers);
|
||
|
}
|
||
|
|
||
|
public function isEmpty()
|
||
|
{
|
||
|
return empty($this->drivers);
|
||
|
}
|
||
|
|
||
|
public function isNotEmpty()
|
||
|
{
|
||
|
return ! $this->isEmpty();
|
||
|
}
|
||
|
}
|