PluginProbe
User Access Manager / 2.2.25
User Access Manager v2.2.25
2.3.20 2.3.19 2.3.18 2.3.17 2.3.16 2.3.15 2.3.14 2.3.13 trunk 0.6 0.6.1 0.6.2 0.7 0.7 Beta 0.7.0.1 0.8 0.8.0.1 0.8.0.2 0.9 0.9.1 0.9.1.1 0.9.1.2 0.9.1.3 0.9.1.4 1.0 All 136 releases
← All changes | src/Controller/ControllerFactory.php +331 -55 trunk2.2.25 View file →
@@ -1,5 +1,18 @@
1 1 <?php
2 +/**
3 + * ControllerFactory.php
4 + *
5 + * The ControllerFactory class file.
6 + *
7 + * PHP versions 5
8 + *
9 + * @author Alexander Schneider <alexanderschneider85@gmail.com>
10 + * @copyright 2008-2017 Alexander Schneider
11 + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
12 + * @version SVN: $id$
13 + * @link http://wordpress.org/extend/plugins/user-access-manager/
14 + */
2 15
3 16 declare(strict_types=1);
4 17
5 18 namespace UserAccessManager\Controller;
@@ -7,36 +20,36 @@
7 20 use UserAccessManager\Access\AccessHandler;
8 21 use UserAccessManager\Cache\Cache;
9 22 use UserAccessManager\Config\MainConfig;
10 23 use UserAccessManager\Config\WordpressConfig;
11 -use UserAccessManager\Controller\Backend\Administration\AboutController;
24 +use UserAccessManager\Controller\Backend\AboutController;
12 25 use UserAccessManager\Controller\Backend\BackendController;
13 26 use UserAccessManager\Controller\Backend\CacheController;
14 -use UserAccessManager\Controller\Backend\ObjectMembership\DynamicGroupsController;
15 -use UserAccessManager\Controller\Backend\ObjectMembership\ObjectController;
16 -use UserAccessManager\Controller\Backend\ObjectMembership\ObjectInformationFactory;
17 -use UserAccessManager\Controller\Backend\ObjectMembership\PostObjectController;
18 -use UserAccessManager\Controller\Backend\Administration\SettingsController;
19 -use UserAccessManager\Controller\Backend\Administration\SetupController;
20 -use UserAccessManager\Controller\Backend\ObjectMembership\TermObjectController;
21 -use UserAccessManager\Controller\Backend\Administration\UserGroupController;
22 -use UserAccessManager\Controller\Backend\ObjectMembership\UserObjectController;
27 +use UserAccessManager\Controller\Backend\DynamicGroupsController;
28 +use UserAccessManager\Controller\Backend\ObjectController;
29 +use UserAccessManager\Controller\Backend\ObjectInformationFactory;
30 +use UserAccessManager\Controller\Backend\PostObjectController;
31 +use UserAccessManager\Controller\Backend\SettingsController;
32 +use UserAccessManager\Controller\Backend\SetupController;
33 +use UserAccessManager\Controller\Backend\TermObjectController;
34 +use UserAccessManager\Controller\Backend\UserGroupController;
35 +use UserAccessManager\Controller\Backend\UserObjectController;
23 36 use UserAccessManager\Controller\Frontend\FrontendController;
24 -use UserAccessManager\Controller\Frontend\Content\PostController;
37 +use UserAccessManager\Controller\Frontend\PostController;
25 38 use UserAccessManager\Controller\Frontend\RedirectController;
26 -use UserAccessManager\Controller\Frontend\Authentication\ShortCodeController;
27 -use UserAccessManager\Controller\Frontend\Content\TermController;
39 +use UserAccessManager\Controller\Frontend\ShortCodeController;
40 +use UserAccessManager\Controller\Frontend\TermController;
28 41 use UserAccessManager\Database\Database;
29 42 use UserAccessManager\File\FileHandler;
30 -use UserAccessManager\File\Delivery\FileObjectFactory;
43 +use UserAccessManager\File\FileObjectFactory;
31 44 use UserAccessManager\Form\FormFactory;
32 45 use UserAccessManager\Form\FormHelper;
33 46 use UserAccessManager\Object\ObjectHandler;
34 47 use UserAccessManager\Object\ObjectMapHandler;
35 48 use UserAccessManager\Setup\SetupHandler;
36 -use UserAccessManager\User\UserHandler;
37 49 use UserAccessManager\UserGroup\UserGroupAssignmentHandler;
38 50 use UserAccessManager\UserGroup\UserGroupFactory;
51 +use UserAccessManager\User\UserHandler;
39 52 use UserAccessManager\UserGroup\UserGroupHandler;
40 53 use UserAccessManager\Util\DateUtil;
41 54 use UserAccessManager\Util\Util;
42 55 use UserAccessManager\Wrapper\Php;
@@ -41,35 +54,194 @@
41 54 use UserAccessManager\Util\Util;
42 55 use UserAccessManager\Wrapper\Php;
43 56 use UserAccessManager\Wrapper\Wordpress;
44 57
58 +/**
59 + * Class ControllerFactory
60 + *
61 + * @package UserAccessManager\Controller
62 + */
45 63 class ControllerFactory
46 64 {
65 + /**
66 + * @var Php
67 + */
68 + private $php;
69 +
70 + /**
71 + * @var Wordpress
72 + */
73 + private $wordpress;
74 +
75 + /**
76 + * @var Database
77 + */
78 + private $database;
79 +
80 + /**
81 + * @var WordpressConfig
82 + */
83 + private $wordpressConfig;
84 +
85 + /**
86 + * @var MainConfig
87 + */
88 + private $mainConfig;
89 +
90 + /**
91 + * @var Util
92 + */
93 + private $util;
94 +
95 + /**
96 + * @var DateUtil
97 + */
98 + private $dateUtil;
99 +
100 + /**
101 + * @var Cache
102 + */
103 + private $cache;
104 +
105 + /**
106 + * @var ObjectHandler
107 + */
108 + private $objectHandler;
109 +
110 + /**
111 + * @var ObjectMapHandler
112 + */
113 + private $objectMapHandler;
114 +
115 + /**
116 + * @var UserHandler
117 + */
118 + private $userHandler;
119 +
120 + /**
121 + * @var UserGroupHandler
122 + */
123 + private $userGroupHandler;
124 +
125 + /**
126 + * @var UserGroupFactory
127 + */
128 + private $userGroupFactory;
129 +
130 + /**
131 + * @var UserGroupAssignmentHandler
132 + */
133 + private $userGroupAssignmentHandler;
134 +
135 + /**
136 + * @var AccessHandler
137 + */
138 + private $accessHandler;
139 +
140 + /**
141 + * @var FileHandler
142 + */
143 + private $fileHandler;
144 +
145 + /**
146 + * @var FileObjectFactory
147 + */
148 + private $fileObjectFactory;
149 +
150 + /**
151 + * @var SetupHandler
152 + */
153 + private $setupHandler;
154 +
155 + /**
156 + * @var FormFactory
157 + */
158 + private $formFactory;
159 +
160 + /**
161 + * @var FormHelper
162 + */
163 + private $formHelper;
164 +
165 + /**
166 + * @var ObjectInformationFactory
167 + */
168 + private $objectInformationFactory;
169 +
170 + /**
171 + * ControllerFactory constructor.
172 + * @param Php $php
173 + * @param Wordpress $wordpress
174 + * @param Database $database
175 + * @param WordpressConfig $wordpressConfig
176 + * @param MainConfig $mainConfig
177 + * @param Util $util
178 + * @param DateUtil $dateUtil
179 + * @param Cache $cache
180 + * @param ObjectHandler $objectHandler
181 + * @param ObjectMapHandler $objectMapHandler
182 + * @param UserHandler $userHandler
183 + * @param UserGroupHandler $userGroupHandler
184 + * @param UserGroupFactory $userGroupFactory
185 + * @param UserGroupAssignmentHandler $userGroupAssignmentHandler
186 + * @param AccessHandler $accessHandler
187 + * @param FileHandler $fileHandler
188 + * @param FileObjectFactory $fileObjectFactory
189 + * @param SetupHandler $setupHandler
190 + * @param FormFactory $formFactory
191 + * @param FormHelper $formHelper
192 + * @param ObjectInformationFactory $objectInformationFactory
193 + */
47 194 public function __construct(
48 - private Php $php,
49 - private Wordpress $wordpress,
50 - private Database $database,
51 - private WordpressConfig $wordpressConfig,
52 - private MainConfig $mainConfig,
53 - private Util $util,
54 - private DateUtil $dateUtil,
55 - private Cache $cache,
56 - private ObjectHandler $objectHandler,
57 - private ObjectMapHandler $objectMapHandler,
58 - private UserHandler $userHandler,
59 - private UserGroupHandler $userGroupHandler,
60 - private UserGroupFactory $userGroupFactory,
61 - private UserGroupAssignmentHandler $userGroupAssignmentHandler,
62 - private AccessHandler $accessHandler,
63 - private FileHandler $fileHandler,
64 - private FileObjectFactory $fileObjectFactory,
65 - private SetupHandler $setupHandler,
66 - private FormFactory $formFactory,
67 - private FormHelper $formHelper,
68 - private ObjectInformationFactory $objectInformationFactory
195 + Php $php,
196 + Wordpress $wordpress,
197 + Database $database,
198 + WordpressConfig $wordpressConfig,
199 + MainConfig $mainConfig,
200 + Util $util,
201 + DateUtil $dateUtil,
202 + Cache $cache,
203 + ObjectHandler $objectHandler,
204 + ObjectMapHandler $objectMapHandler,
205 + UserHandler $userHandler,
206 + UserGroupHandler $userGroupHandler,
207 + UserGroupFactory $userGroupFactory,
208 + UserGroupAssignmentHandler $userGroupAssignmentHandler,
209 + AccessHandler $accessHandler,
210 + FileHandler $fileHandler,
211 + FileObjectFactory $fileObjectFactory,
212 + SetupHandler $setupHandler,
213 + FormFactory $formFactory,
214 + FormHelper $formHelper,
215 + ObjectInformationFactory $objectInformationFactory
69 216 ) {
217 + $this->php = $php;
218 + $this->wordpress = $wordpress;
219 + $this->database = $database;
220 + $this->wordpressConfig = $wordpressConfig;
221 + $this->mainConfig = $mainConfig;
222 + $this->util = $util;
223 + $this->dateUtil = $dateUtil;
224 + $this->cache = $cache;
225 + $this->objectHandler = $objectHandler;
226 + $this->objectMapHandler = $objectMapHandler;
227 + $this->userHandler = $userHandler;
228 + $this->userGroupHandler = $userGroupHandler;
229 + $this->userGroupFactory = $userGroupFactory;
230 + $this->userGroupAssignmentHandler = $userGroupAssignmentHandler;
231 + $this->accessHandler = $accessHandler;
232 + $this->fileHandler = $fileHandler;
233 + $this->fileObjectFactory = $fileObjectFactory;
234 + $this->setupHandler = $setupHandler;
235 + $this->formFactory = $formFactory;
236 + $this->formHelper = $formHelper;
237 + $this->objectInformationFactory = $objectInformationFactory;
70 238 }
71 239
240 + /**
241 + * Creates and returns a new backend controller.
242 + * @return BackendController
243 + */
72 244 public function createBackendController(): BackendController
73 245 {
74 246 return new BackendController(
75 247 $this->php,
@@ -79,8 +251,12 @@
79 251 $this->setupHandler
80 252 );
81 253 }
82 254
255 + /**
256 + * Creates and returns a new backend about controller.
257 + * @return AboutController
258 + */
83 259 public function createBackendAboutController(): AboutController
84 260 {
85 261 return new AboutController(
86 262 $this->php,
@@ -89,15 +265,14 @@
89 265 );
90 266 }
91 267
92 268 /**
93 - * @template TController of ObjectController
94 - * @param class-string<TController> $controllerClass
95 - * @return TController
269 + * Creates and returns a new backend object controller.
270 + * @return ObjectController
96 271 */
97 - private function createObjectController(string $controllerClass): ObjectController
272 + public function createBackendObjectController(): ObjectController
98 273 {
99 - return new $controllerClass(
274 + return new ObjectController(
100 275 $this->php,
101 276 $this->wordpress,
102 277 $this->wordpressConfig,
103 278 $this->mainConfig,
@@ -111,38 +286,111 @@
111 286 $this->objectInformationFactory
112 287 );
113 288 }
114 289
115 - public function createBackendObjectController(): ObjectController
116 - {
117 - return $this->createObjectController(ObjectController::class);
118 - }
119 -
290 + /**
291 + * Creates and returns a new backend cache controller.
292 + * @return CacheController
293 + */
120 294 public function createBackendCacheController(): CacheController
121 295 {
122 - return new CacheController($this->cache);
296 + return new CacheController(
297 + $this->cache
298 + );
123 299 }
124 300
301 + /**
302 + * Creates and returns a new backend post object controller.
303 + * @return PostObjectController
304 + */
125 305 public function createBackendPostObjectController(): PostObjectController
126 306 {
127 - return $this->createObjectController(PostObjectController::class);
307 + return new PostObjectController(
308 + $this->php,
309 + $this->wordpress,
310 + $this->wordpressConfig,
311 + $this->mainConfig,
312 + $this->database,
313 + $this->dateUtil,
314 + $this->objectHandler,
315 + $this->userHandler,
316 + $this->userGroupHandler,
317 + $this->userGroupAssignmentHandler,
318 + $this->accessHandler,
319 + $this->objectInformationFactory
320 + );
128 321 }
129 322
323 + /**
324 + * Creates and returns a new backend term object controller.
325 + * @return TermObjectController
326 + */
130 327 public function createBackendTermObjectController(): TermObjectController
131 328 {
132 - return $this->createObjectController(TermObjectController::class);
329 + return new TermObjectController(
330 + $this->php,
331 + $this->wordpress,
332 + $this->wordpressConfig,
333 + $this->mainConfig,
334 + $this->database,
335 + $this->dateUtil,
336 + $this->objectHandler,
337 + $this->userHandler,
338 + $this->userGroupHandler,
339 + $this->userGroupAssignmentHandler,
340 + $this->accessHandler,
341 + $this->objectInformationFactory
342 + );
133 343 }
134 344
345 + /**
346 + * Creates and returns a new backend user object controller.
347 + * @return UserObjectController
348 + */
135 349 public function createBackendUserObjectController(): UserObjectController
136 350 {
137 - return $this->createObjectController(UserObjectController::class);
351 + return new UserObjectController(
352 + $this->php,
353 + $this->wordpress,
354 + $this->wordpressConfig,
355 + $this->mainConfig,
356 + $this->database,
357 + $this->dateUtil,
358 + $this->objectHandler,
359 + $this->userHandler,
360 + $this->userGroupHandler,
361 + $this->userGroupAssignmentHandler,
362 + $this->accessHandler,
363 + $this->objectInformationFactory
364 + );
138 365 }
139 366
367 + /**
368 + * Creates and returns a new backend dynamic group controller.
369 + * @return DynamicGroupsController
370 + */
140 371 public function createBackendDynamicGroupsController(): DynamicGroupsController
141 372 {
142 - return $this->createObjectController(DynamicGroupsController::class);
373 + return new DynamicGroupsController(
374 + $this->php,
375 + $this->wordpress,
376 + $this->wordpressConfig,
377 + $this->mainConfig,
378 + $this->database,
379 + $this->dateUtil,
380 + $this->objectHandler,
381 + $this->userHandler,
382 + $this->userGroupHandler,
383 + $this->userGroupAssignmentHandler,
384 + $this->accessHandler,
385 + $this->objectInformationFactory
386 + );
143 387 }
144 388
389 + /**
390 + * Creates and returns a new backend setup controller.
391 + * @return SettingsController
392 + */
145 393 public function createBackendSettingsController(): SettingsController
146 394 {
147 395 return new SettingsController(
148 396 $this->php,
@@ -155,8 +403,12 @@
155 403 $this->formHelper
156 404 );
157 405 }
158 406
407 + /**
408 + * Creates and returns a new backend setup controller.
409 + * @return SetupController
410 + */
159 411 public function createBackendSetupController(): SetupController
160 412 {
161 413 return new SetupController(
162 414 $this->php,
@@ -166,8 +418,12 @@
166 418 $this->setupHandler
167 419 );
168 420 }
169 421
422 + /**
423 + * Creates and returns a new backend user group controller.
424 + * @return UserGroupController
425 + */
170 426 public function createBackendUserGroupController(): UserGroupController
171 427 {
172 428 return new UserGroupController(
173 429 $this->php,
@@ -178,8 +434,12 @@
178 434 $this->formHelper
179 435 );
180 436 }
181 437
438 + /**
439 + * Creates and returns a new frontend controller.
440 + * @return FrontendController
441 + */
182 442 public function createFrontendController(): FrontendController
183 443 {
184 444 return new FrontendController(
185 445 $this->php,
@@ -189,8 +449,12 @@
189 449 $this->accessHandler
190 450 );
191 451 }
192 452
453 + /**
454 + * Creates and returns a new frontend post controller.
455 + * @return PostController
456 + */
193 457 public function createFrontendPostController(): PostController
194 458 {
195 459 return new PostController(
196 460 $this->php,
@@ -196,17 +460,21 @@
196 460 $this->php,
197 461 $this->wordpress,
198 462 $this->wordpressConfig,
199 463 $this->mainConfig,
464 + $this->database,
200 465 $this->util,
201 466 $this->objectHandler,
202 467 $this->userHandler,
203 468 $this->userGroupHandler,
204 - $this->accessHandler,
205 - $this->database
469 + $this->accessHandler
206 470 );
207 471 }
208 472
473 + /**
474 + * Creates and returns a new frontend redirect controller.
475 + * @return RedirectController
476 + */
209 477 public function createFrontendRedirectController(): RedirectController
210 478 {
211 479 return new RedirectController(
212 480 $this->php,
@@ -222,8 +490,12 @@
222 490 $this->fileObjectFactory
223 491 );
224 492 }
225 493
494 + /**
495 + * Creates and returns a new frontend short code controller.
496 + * @return ShortCodeController
497 + */
226 498 public function createFrontendShortCodeController(): ShortCodeController
227 499 {
228 500 return new ShortCodeController(
229 501 $this->php,
@@ -232,8 +504,12 @@
232 504 $this->userGroupHandler
233 505 );
234 506 }
235 507
508 + /**
509 + * Creates and returns a new frontend term controller.
510 + * @return TermController
511 + */
236 512 public function createFrontendTermController(): TermController
237 513 {
238 514 return new TermController(
239 515 $this->php,
@@ -241,11 +517,11 @@
241 517 $this->wordpressConfig,
242 518 $this->mainConfig,
243 519 $this->util,
244 520 $this->objectHandler,
521 + $this->objectMapHandler,
245 522 $this->userHandler,
246 523 $this->userGroupHandler,
247 - $this->accessHandler,
248 - $this->objectMapHandler
524 + $this->accessHandler
249 525 );
250 526 }
251 527 }