adrema/app/Dashboard/Blocks/Block.php

28 lines
573 B
PHP

<?php
namespace App\Dashboard\Blocks;
abstract class Block
{
/**
* @return array<array-key, mixed>
*/
abstract protected function data(): array;
abstract protected function title(): string;
abstract protected function component(): string;
/**
* @return array{data: array<array-key, mixed>, title: string, component: string}
*/
public function render(): array
{
return [
'data' => $this->data(),
'title' => $this->title(),
'component' => $this->component(),
];
}
}