28 lines
		
	
	
		
			573 B
		
	
	
	
		
			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(),
 | |
|         ];
 | |
|     }
 | |
| }
 |