1
+ <?php
2
+
3
+ /**
4
+ * LightQL - The lightweight PHP ORM
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ *
24
+ * @category Library
25
+ * @package LightQL
26
+ * @author Axel Nana <ax.lnana@outlook.com>
27
+ * @copyright 2018 Aliens Group, Inc.
28
+ * @license MIT <https://github.com/ElementaryFramework/LightQL/blob/master/LICENSE>
29
+ * @version GIT: 0.0.1
30
+ * @link http://lightql.na2axl.tk
31
+ */
32
+
33
+ namespace ElementaryFramework \LightQL \Sessions ;
34
+
35
+ use ElementaryFramework \LightQL \Entities \Entity ;
36
+
37
+ /**
38
+ * IFacade
39
+ *
40
+ * Provide methods for all entity facades.
41
+ *
42
+ * @abstract
43
+ * @category Sessions
44
+ * @package LightQL
45
+ * @author Nana Axel <ax.lnana@outlook.com>
46
+ * @link http://lightql.na2axl.tk/docs/api/LightQL/Sessions/IFacade
47
+ */
48
+ interface IFacade
49
+ {
50
+ /**
51
+ * @param Entity $entity
52
+ * @return void
53
+ */
54
+ function create (Entity &$ entity );
55
+
56
+ /**
57
+ * @param Entity $entity
58
+ * @return void
59
+ */
60
+ function edit (Entity &$ entity );
61
+
62
+ /**
63
+ * @param Entity $entity
64
+ * @return void
65
+ */
66
+ function delete (Entity &$ entity );
67
+
68
+ /**
69
+ * @param mixed $id
70
+ *
71
+ * @return Entity
72
+ */
73
+ function find ($ id ): Entity ;
74
+
75
+ /**
76
+ * @return Entity[]
77
+ */
78
+ function findAll (): array ;
79
+
80
+ /**
81
+ * @param int $start
82
+ * @param int $length
83
+ * @return array
84
+ */
85
+ function findRange (int $ start , int $ length ): array ;
86
+
87
+ /**
88
+ * @return int
89
+ */
90
+ function count (): int ;
91
+ }
0 commit comments