1 | <?php |
||
50 | class Repository implements RepositoryInterface |
||
51 | { |
||
52 | // Name of the php class used to create entities. Subclasses have to set a value to this, to be able to create entities |
||
53 | protected $entityClass; |
||
54 | |||
55 | protected $repository; |
||
56 | protected $entityManager; |
||
57 | protected $contentTypeIdentifier; |
||
58 | protected $settings; |
||
59 | protected $logger; |
||
60 | |||
61 | 10 | /** |
|
62 | * Prioritized languages |
||
63 | 10 | * |
|
64 | 10 | * @var array |
|
65 | 10 | */ |
|
66 | 10 | protected $languages; |
|
67 | 10 | ||
68 | public function __construct(eZRepository $repository, $entityManager, array $settings=array(), $contentTypeIdentifier='') |
||
75 | |||
76 | public function setContentTypeIdentifier($contentTypeIdentifier) |
||
81 | 10 | ||
82 | public function setSettings(array $settings) |
||
87 | |||
88 | public function setLogger(LoggerInterface $logger=null) |
||
93 | |||
94 | public function setLanguages(array $languages = null) |
||
98 | |||
99 | /** |
||
100 | * Called from the constructor, with the settings received from the caller. |
||
101 | * Subclasses can implement checking here, or merge the received settings with other data, using f.e. the Symfony |
||
102 | * OptionsResolver component (see http://symfony.com/doc/current/components/options_resolver.html). |
||
103 | * |
||
104 | * @param array $settings |
||
105 | * @return array |
||
106 | */ |
||
107 | protected function validateSettings(array $settings) |
||
111 | |||
112 | /** |
||
113 | 10 | * Nice syntactic sugar ( manually typehinted :-) ) |
|
114 | 10 | * Allow all logger methods and eZ repo methods to be called on this extended repo |
|
115 | 10 | * |
|
116 | 10 | * @param string $method |
|
117 | 10 | * @param array $args |
|
118 | 10 | * @return mixed |
|
119 | 10 | * |
|
120 | 10 | * @todo !important move this method to protected access? |
|
121 | 10 | */ |
|
122 | public function __call($method, $args) |
||
143 | |||
144 | 10 | /** |
|
145 | 10 | * To be overridden in subclasses, this method allows injecting extra services/settings in the entities created. |
|
146 | 10 | * This version 'knows' about EntityManagerAware and Logging entity traits. |
|
147 | 10 | * |
|
148 | * @param \Kaliop\eZObjectWrapperBundle\Core\EntityInterface $entity |
||
149 | * @return \Kaliop\eZObjectWrapperBundle\Core\EntityInterface |
||
150 | */ |
||
151 | protected function enrichEntityAtLoad($entity) |
||
164 | |||
165 | /** |
||
166 | * @param Content $content |
||
167 | 4 | * @return \Kaliop\eZObjectWrapperBundle\Core\EntityInterface |
|
168 | * |
||
169 | 4 | * @todo optionally (?) throw an error if bad content type is detected |
|
170 | 4 | */ |
|
171 | 4 | public function loadEntityFromContent(Content $content) |
|
177 | |||
178 | 2 | /** |
|
179 | * @param Location $location |
||
180 | 2 | * @return \Kaliop\eZObjectWrapperBundle\Core\EntityInterface |
|
181 | */ |
||
182 | public function loadEntityFromLocation(Location $location) |
||
188 | |||
189 | 10 | /** |
|
190 | * @param ContentInfo $contentInfo |
||
191 | 10 | * @return \Kaliop\eZObjectWrapperBundle\Core\EntityInterface |
|
192 | */ |
||
193 | public function loadEntityFromContentInfo(ContentInfo $contentInfo) |
||
197 | |||
198 | /** |
||
199 | * @param int $id |
||
200 | * @return \Kaliop\eZObjectWrapperBundle\Core\EntityInterface |
||
201 | 10 | * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException if the content with the given id does not exist |
|
202 | * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If the user has no access to read content and in case of un-published content: read versions |
||
203 | 10 | */ |
|
204 | public function loadEntityFromContentId($id) |
||
208 | |||
209 | /** |
||
210 | * An alias for loadEntityFromContentId, to keep the API close to Doctrine |
||
211 | * @param int $id |
||
212 | 1 | * @return \Kaliop\eZObjectWrapperBundle\Core\EntityInterface |
|
213 | * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException if the content with the given id does not exist |
||
214 | 1 | * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If the user has no access to read content and in case of un-published content: read versions |
|
215 | */ |
||
216 | public function find($id) |
||
220 | |||
221 | /** |
||
222 | * @param int $id |
||
223 | 1 | * @return \Kaliop\eZObjectWrapperBundle\Core\EntityInterface |
|
224 | * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If the current user user is not allowed to read this location |
||
225 | 1 | * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException If the specified location is not found |
|
226 | */ |
||
227 | public function loadEntityFromLocationId($id) |
||
231 | |||
232 | /** |
||
233 | * @param string $remoteId |
||
234 | 1 | * @return \Kaliop\eZObjectWrapperBundle\Core\EntityInterface |
|
235 | * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException if the content with the given id does not exist |
||
236 | 1 | * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If the user has no access to read content and in case of un-published content: read versions |
|
237 | */ |
||
238 | public function loadEntityFromContentRemoteId($remoteId) |
||
242 | |||
243 | /** |
||
244 | * @param string $remoteId |
||
245 | * @return \Kaliop\eZObjectWrapperBundle\Core\EntityInterface |
||
246 | * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If the current user user is not allowed to read this location |
||
247 | * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException If the specified location is not found |
||
248 | */ |
||
249 | public function loadEntityFromLocationRemoteId($remoteId) |
||
253 | |||
254 | /** |
||
255 | * NB: assumes that all search results are homogeneous (same content type) |
||
256 | * @param SearchResult $searchResult |
||
257 | * @return \Kaliop\eZObjectWrapperBundle\Core\EntityInterface[] |
||
258 | */ |
||
259 | protected function loadEntitiesFromSearchResults(SearchResult $searchResult) |
||
272 | } |
||
273 |
Our type inference engine has found an assignment of a scalar value (like a string, an integer or null) to a property which is an array.
Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property.
To type hint that a parameter can be either an array or null, you can set a type hint of array and a default value of null. The PHP interpreter will then accept both an array or null for that parameter.
The function can be called with either null or an array for the parameter
$needle
but will only accept an array as$haystack
.