for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace GeminiLabs\BlackBar\Modules;
use GeminiLabs\BlackBar\Application;
abstract class Module
{
/**
* @var Application
*/
protected $app;
* @var array
protected $entries;
public function __construct(Application $app)
$this->app = $app;
$this->entries = [];
}
public function classes(): string
return $this->id();
abstract public function entries(): array;
public function hasEntries(): bool
return !empty($this->entries);
public function id(): string
return sprintf('glbb-%s', $this->slug());
public function isVisible(): bool
return true;
abstract public function label(): string;
public function render(): void
$this->app->render('panels/'.$this->slug(), ['module' => $this]);
public function slug(): string
return strtolower((new \ReflectionClass($this))->getShortName());