Skip to content

Commit e644af4

Browse files
committedFeb 23, 2023
Security updates
1 parent 5ece5e5 commit e644af4

File tree

2 files changed

+143
-183
lines changed

2 files changed

+143
-183
lines changed
 

‎src/Contracts/RepositoryContract.php

+44-40
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,22 @@
33
namespace Torann\LaravelRepository\Contracts;
44

55
use Illuminate\Support\Collection;
6-
use Illuminate\Pagination\Paginator;
76
use Illuminate\Database\Eloquent\Model;
87

8+
/**
9+
* @template TKey of array-key
10+
* @template TValue
11+
*
12+
* @implements \ArrayAccess<TKey, TValue>
13+
*/
914
interface RepositoryContract
1015
{
1116
/**
1217
* Return model instance.
1318
*
1419
* @return Model
1520
*/
16-
public function getModel();
21+
public function getModel(): Model;
1722

1823
/**
1924
* Find data by id
@@ -23,29 +28,29 @@ public function getModel();
2328
*
2429
* @return Model|Collection
2530
*/
26-
public function find($id, $columns = ['*']);
31+
public function find(mixed $id, array $columns = ['*']);
2732

2833
/**
2934
* Find a model by its primary key or throw an exception.
3035
*
31-
* @para string $id
32-
*
33-
* @return \Illuminate\Database\Eloquent\Model
36+
* @param string $id
37+
* @param array $columns
3438
*
39+
* @return Model
3540
* @throws \Illuminate\Database\Eloquent\ModelNotFoundException
3641
*/
37-
public function findOrFail($id);
42+
public function findOrFail(string $id, array $columns = ['*']);
3843

3944
/**
4045
* Find data by field and value
4146
*
42-
* @param $field
43-
* @param $value
44-
* @param array $columns
47+
* @param string $field
48+
* @param string $value
49+
* @param array $columns
4550
*
46-
* @return Model|Collection
51+
* @return Model|object|static|null
4752
*/
48-
public function findBy($field, $value, $columns = ['*']);
53+
public function findBy(string $field, string $value, array $columns = ['*']);
4954

5055
/**
5156
* Find data by field
@@ -54,38 +59,38 @@ public function findBy($field, $value, $columns = ['*']);
5459
* @param mixed $value
5560
* @param array $columns
5661
*
57-
* @return mixed
62+
* @return \Illuminate\Database\Eloquent\Collection|static[]
5863
*/
59-
public function findAllBy($attribute, $value, $columns = ['*']);
64+
public function findAllBy(string $attribute, mixed $value, array $columns = ['*']);
6065

6166
/**
6267
* Find data by multiple fields
6368
*
6469
* @param array $where
6570
* @param array $columns
6671
*
67-
* @return mixed
72+
* @return \Illuminate\Database\Eloquent\Collection|static[]
6873
*/
69-
public function findWhere(array $where, $columns = ['*']);
74+
public function findWhere(array $where, array $columns = ['*']);
7075

7176
/**
7277
* Order results by.
7378
*
74-
* @param string $column
75-
* @param string $direction
79+
* @param mixed $column
80+
* @param string|null $direction
7681
*
77-
* @return self
82+
* @return static
7883
*/
79-
public function orderBy($column, $direction);
84+
public function orderBy(mixed $column, string|null $direction);
8085

8186
/**
8287
* Filter results by given query params.
8388
*
84-
* @param string $queries
89+
* @param string|array $queries
8590
*
86-
* @return self
91+
* @return static
8792
*/
88-
public function search($queries);
93+
public function search(string|array $queries);
8994

9095
/**
9196
* Retrieve all data of repository
@@ -94,37 +99,37 @@ public function search($queries);
9499
*
95100
* @return Collection
96101
*/
97-
public function all($columns = ['*']);
102+
public function all(array $columns = ['*']);
98103

99104
/**
100105
* Get an array with the values of a given column.
101106
*
102-
* @param string $value
103-
* @param string $key
107+
* @param string $value
108+
* @param string|null $key
104109
*
105-
* @return array
110+
* @return array<TKey, TValue>
106111
*/
107-
public function pluck($value, $key = null);
112+
public function pluck(string $value, string $key = null);
108113

109114
/**
110115
* Retrieve all data of repository, paginated
111116
*
112-
* @param null $limit
113-
* @param array $columns
117+
* @param mixed $per_page
118+
* @param string|array $columns
114119
*
115120
* @return \Illuminate\Contracts\Pagination\Paginator
116121
*/
117-
public function paginate($limit = null, $columns = ['*']);
122+
public function paginate(mixed $per_page = null, string|array $columns = ['*']);
118123

119124
/**
120125
* Retrieve all data of repository, paginated
121126
*
122-
* @param null $limit
123-
* @param array $columns
127+
* @param mixed $per_page
128+
* @param string|array $columns
124129
*
125130
* @return \Illuminate\Contracts\Pagination\Paginator
126131
*/
127-
public function simplePaginate($limit = null, $columns = ['*']);
132+
public function simplePaginate(mixed $per_page = null, string|array $columns = ['*']);
128133

129134
/**
130135
* Save a new entity in repository
@@ -151,10 +156,9 @@ public function update(Model $entity, array $attributes);
151156
* @param mixed $entity
152157
*
153158
* @return bool|null
154-
*
155159
* @throws \Exception
156160
*/
157-
public function delete($entity);
161+
public function delete(mixed $entity);
158162

159163
/**
160164
* Get the raw SQL statements for the request
@@ -169,9 +173,9 @@ public function toSql();
169173
* @param string $message
170174
* @param string $key
171175
*
172-
* @return self
176+
* @return static
173177
*/
174-
public function addError($message, string $key = 'message');
178+
public function addError(string $message, string $key = 'message');
175179

176180
/**
177181
* Get the repository's error messages.
@@ -187,5 +191,5 @@ public function getErrors();
187191
*
188192
* @return string
189193
*/
190-
public function getErrorMessage($default = '');
191-
}
194+
public function getErrorMessage(string $default = ''): string;
195+
}

0 commit comments

Comments
 (0)
Please sign in to comment.