Completed
Push — master ( aabe6c...b72855 )
by Abdelrahman
06:20 queued 02:51
created

src/Contracts/RepositoryContract.php (1 issue)

Check that @param annotations have the correct type.

Documentation Informational

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
/*
4
 * NOTICE OF LICENSE
5
 *
6
 * Part of the Rinvex Repository Package.
7
 *
8
 * This source file is subject to The MIT License (MIT)
9
 * that is bundled with this package in the LICENSE file.
10
 *
11
 * Package: Rinvex Repository Package
12
 * License: The MIT License (MIT)
13
 * Link:    https://rinvex.com
14
 */
15
16
namespace Rinvex\Repository\Contracts;
17
18
use Illuminate\Contracts\Container\Container;
19
20
interface RepositoryContract
21
{
22
    /**
23
     * Set the IoC container instance.
24
     *
25
     * @param \Illuminate\Contracts\Container\Container $container
26
     *
27
     * @return $this
28
     */
29
    public function setContainer(Container $container);
30
31
    /**
32
     * Get the IoC container instance or any of it's services.
33
     *
34
     * @param string|null $service
35
     *
36
     * @return object
37
     */
38
    public function getContainer($service = null);
39
40
    /**
41
     * Set the repository identifier.
42
     *
43
     * @param string $repositoryId
44
     *
45
     * @return $this
46
     */
47
    public function setRepositoryId($repositoryId);
48
49
    /**
50
     * Get the repository identifier.
51
     *
52
     * @return string
53
     */
54
    public function getRepositoryId();
55
56
    /**
57
     * Set the repository model.
58
     *
59
     * @param string $model
60
     *
61
     * @return $this
62
     */
63
    public function setModel($model);
64
65
    /**
66
     * Get the repository model.
67
     *
68
     * @return string
69
     */
70
    public function getModel();
71
72
    /**
73
     * Create a new repository model instance.
74
     *
75
     * @throws \Rinvex\Repository\Exceptions\RepositoryException
76
     *
77
     * @return object
78
     */
79
    public function createModel();
80
81
    /**
82
     * Set the relationships that should be eager loaded.
83
     *
84
     * @param array $relations
85
     *
86
     * @return $this
87
     */
88
    public function with(array $relations);
89
90
    /**
91
     * Add a basic where clause to the query.
92
     *
93
     * @param string $attribute
94
     * @param string $operator
0 ignored issues
show
Should the type for parameter $operator not be string|null?

This check looks for @param annotations where the type inferred by our type inference engine differs from the declared type.

It makes a suggestion as to what type it considers more descriptive.

Most often this is a case of a parameter that can be null in addition to its declared types.

Loading history...
95
     * @param mixed  $value
96
     * @param string $boolean
97
     *
98
     * @return $this
99
     */
100
    public function where($attribute, $operator = null, $value = null, $boolean = 'and');
101
102
    /**
103
     * Add a "where in" clause to the query.
104
     *
105
     * @param string $attribute
106
     * @param mixed  $values
107
     * @param string $boolean
108
     * @param bool   $not
109
     *
110
     * @return $this
111
     */
112
    public function whereIn($attribute, $values, $boolean = 'and', $not = false);
113
114
    /**
115
     * Add a "where not in" clause to the query.
116
     *
117
     * @param string $attribute
118
     * @param mixed  $values
119
     * @param string $boolean
120
     *
121
     * @return $this
122
     */
123
    public function whereNotIn($attribute, $values, $boolean = 'and');
124
125
    /**
126
     * Set the "offset" value of the query.
127
     *
128
     * @param int $offset
129
     *
130
     * @return $this
131
     */
132
    public function offset($offset);
133
134
    /**
135
     * Set the "limit" value of the query.
136
     *
137
     * @param int $limit
138
     *
139
     * @return $this
140
     */
141
    public function limit($limit);
142
143
    /**
144
     * Add an "order by" clause to the query.
145
     *
146
     * @param string $attribute
147
     * @param string $direction
148
     *
149
     * @return $this
150
     */
151
    public function orderBy($attribute, $direction = 'asc');
152
153
    /**
154
     * Find an entity by it's primary key.
155
     *
156
     * @param int   $id
157
     * @param array $attributes
158
     *
159
     * @return object
160
     */
161
    public function find($id, $attributes = ['*']);
162
163
    /**
164
     * Find an entity by one of it's attributes.
165
     *
166
     * @param string $attribute
167
     * @param string $value
168
     * @param array  $attributes
169
     *
170
     * @return object
171
     */
172
    public function findBy($attribute, $value, $attributes = ['*']);
173
174
    /**
175
     * Find all entities.
176
     *
177
     * @param array $attributes
178
     *
179
     * @return \Illuminate\Support\Collection
180
     */
181
    public function findAll($attributes = ['*']);
182
183
    /**
184
     * Paginate all entities.
185
     *
186
     * @param int|null $perPage
187
     * @param array    $attributes
188
     * @param string   $pageName
189
     * @param int|null $page
190
     *
191
     * @throws \InvalidArgumentException
192
     *
193
     * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
194
     */
195
    public function paginate($perPage = null, $attributes = ['*'], $pageName = 'page', $page = null);
196
197
    /**
198
     * Paginate all entities into a simple paginator.
199
     *
200
     * @param int|null $perPage
201
     * @param array    $attributes
202
     * @param string   $pageName
203
     *
204
     * @return \Illuminate\Contracts\Pagination\Paginator
205
     */
206
    public function simplePaginate($perPage = null, $attributes = ['*'], $pageName = 'page');
207
208
    /**
209
     * Find all entities matching where conditions.
210
     *
211
     * @param array $where
212
     * @param array $attributes
213
     *
214
     * @return \Illuminate\Support\Collection
215
     */
216
    public function findWhere(array $where, $attributes = ['*']);
217
218
    /**
219
     * Find all entities matching whereIn conditions.
220
     *
221
     * @param array $where
222
     * @param array $attributes
223
     *
224
     * @return \Illuminate\Support\Collection
225
     */
226
    public function findWhereIn(array $where, $attributes = ['*']);
227
228
    /**
229
     * Find all entities matching whereNotIn conditions.
230
     *
231
     * @param array $where
232
     * @param array $attributes
233
     *
234
     * @return \Illuminate\Support\Collection
235
     */
236
    public function findWhereNotIn(array $where, $attributes = ['*']);
237
238
    /**
239
     * Create a new entity with the given attributes.
240
     *
241
     * @param array $attributes
242
     *
243
     * @return array
244
     */
245
    public function create(array $attributes = []);
246
247
    /**
248
     * Update an entity with the given attributes.
249
     *
250
     * @param mixed $id
251
     * @param array $attributes
252
     *
253
     * @return array
254
     */
255
    public function update($id, array $attributes = []);
256
257
    /**
258
     * Delete an entity with the given id.
259
     *
260
     * @param mixed $id
261
     *
262
     * @return array
263
     */
264
    public function delete($id);
265
266
    /**
267
     * Dynamically pass missing static methods to the model.
268
     *
269
     * @param $method
270
     * @param $parameters
271
     *
272
     * @return mixed
273
     */
274
    public static function __callStatic($method, $parameters);
275
276
    /**
277
     * Dynamically pass missing methods to the model.
278
     *
279
     * @param string $method
280
     * @param array  $parameters
281
     *
282
     * @return mixed
283
     */
284
    public function __call($method, $parameters);
285
}
286