/
Control.php
75 lines (64 loc) · 1.22 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
71
72
73
74
75
<?php
namespace Ytnuk\Shop\Product;
use Ytnuk;
final class Control
extends Ytnuk\Orm\Control
{
/**
* @var Entity
*/
private $product;
/**
* @var Form\Control\Factory
*/
private $formControl;
/**
* @var Ytnuk\Orm\Grid\Control\Factory
*/
private $gridControl;
/**
* @var Repository
*/
private $repository;
public function __construct(
Entity $product,
Form\Control\Factory $formControl,
Ytnuk\Orm\Grid\Control\Factory $gridControl,
Repository $repository
) {
parent::__construct($product);
$this->product = $product;
$this->formControl = $formControl;
$this->gridControl = $gridControl;
$this->repository = $repository;
}
protected function startup() : array
{
return [
'product' => $this->product,
];
}
protected function getViews() : array
{
return [
'view' => function () {
return [
$this->product,
];
},
'media' => function () {
return [
$this->product,
];
},
] + parent::getViews();
}
protected function createComponentForm() : Form\Control
{
return $this->formControl->create($this->product);
}
protected function createComponentGrid() : Ytnuk\Orm\Grid\Control
{
return $this->gridControl->create($this->repository);
}
}