/
Control.php
70 lines (59 loc) · 1.11 KB
/
Control.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
namespace Ytnuk\Page;
use Ytnuk;
final class Control
extends Ytnuk\Orm\Control
{
/**
* @var Entity
*/
private $page;
/**
* @var Form\Control\Factory
*/
private $formControl;
/**
* @var Ytnuk\Orm\Grid\Control\Factory
*/
private $gridControl;
/**
* @var Repository
*/
private $repository;
public function __construct(
Entity $page,
Form\Control\Factory $formControl,
Ytnuk\Orm\Grid\Control\Factory $gridControl,
Repository $repository
) {
parent::__construct($page);
$this->page = $page;
$this->formControl = $formControl;
$this->gridControl = $gridControl;
$this->repository = $repository;
}
protected function startup() : array
{
return [
'page' => $this->page,
];
}
protected function getViews() : array
{
return [
'view' => function () {
return [
$this->page,
];
},
] + parent::getViews();
}
protected function createComponentForm() : Form\Control
{
return $this->formControl->create($this->page);
}
protected function createComponentGrid() : Ytnuk\Orm\Grid\Control
{
return $this->gridControl->create($this->repository);
}
}