adrema/app/Home/Blocks/Block.php

28 lines
568 B
PHP
Raw Normal View History

2022-11-17 02:15:29 +01:00
<?php
namespace App\Home\Blocks;
abstract class Block
{
2022-11-17 02:18:57 +01:00
/**
* @return array<array-key, mixed>
*/
2022-11-17 02:15:29 +01:00
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(),
];
}
}