PluginProbe
Depicter — Popup & Slider Builder / 1.6.2
Depicter — Popup & Slider Builder v1.6.2
4.8.1 trunk 1.0.0 1.1.0 1.1.2 1.1.4 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.5 1.3.8 1.5.0 1.5.1 1.5.2 1.5.5 1.6.0 1.6.1 1.6.2 1.7.0 All 76 releases
depicter / vendor / htmlburger / wpemerge / src / Application / LoadsServiceProvidersTrait.php

LoadsServiceProvidersTrait.php in Depicter — Popup & Slider Builder 1.6.2, at vendor/htmlburger/wpemerge/src/Application/LoadsServiceProvidersTrait.php

111 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package WPEmerge
4 * @author Atanas Angelov <[email protected]>
5 * @copyright 2017-2019 Atanas Angelov
6 * @license https://www.gnu.org/licenses/gpl-2.0.html GPL-2.0
7 * @link https://wpemerge.com/
8 */
9
10 namespace WPEmerge\Application;
11
12 use Pimple\Container;
13 use WPEmerge\Controllers\ControllersServiceProvider;
14 use WPEmerge\Csrf\CsrfServiceProvider;
15 use WPEmerge\Exceptions\ConfigurationException;
16 use WPEmerge\Exceptions\ExceptionsServiceProvider;
17 use WPEmerge\Flash\FlashServiceProvider;
18 use WPEmerge\Input\OldInputServiceProvider;
19 use WPEmerge\Kernels\KernelsServiceProvider;
20 use WPEmerge\Middleware\MiddlewareServiceProvider;
21 use WPEmerge\Requests\RequestsServiceProvider;
22 use WPEmerge\Responses\ResponsesServiceProvider;
23 use WPEmerge\Routing\RoutingServiceProvider;
24 use WPEmerge\ServiceProviders\ServiceProviderInterface;
25 use WPEmerge\Support\Arr;
26 use WPEmerge\View\ViewServiceProvider;
27
28 /**
29 * Load service providers.
30 */
31 trait LoadsServiceProvidersTrait {
32 /**
33 * Array of default service providers.
34 *
35 * @var string[]
36 */
37 protected $service_providers = [
38 ApplicationServiceProvider::class,
39 KernelsServiceProvider::class,
40 ExceptionsServiceProvider::class,
41 RequestsServiceProvider::class,
42 ResponsesServiceProvider::class,
43 RoutingServiceProvider::class,
44 ViewServiceProvider::class,
45 ControllersServiceProvider::class,
46 MiddlewareServiceProvider::class,
47 CsrfServiceProvider::class,
48 FlashServiceProvider::class,
49 OldInputServiceProvider::class,
50 ];
51
52 /**
53 * Register and bootstrap all service providers.
54 *
55 * @codeCoverageIgnore
56 * @param Container $container
57 * @return void
58 */
59 protected function loadServiceProviders( Container $container ) {
60 $container[ WPEMERGE_SERVICE_PROVIDERS_KEY ] = array_merge(
61 $this->service_providers,
62 Arr::get( $container[ WPEMERGE_CONFIG_KEY ], 'providers', [] )
63 );
64
65 $service_providers = array_map( function ( $service_provider ) use ( $container ) {
66 if ( ! is_subclass_of( $service_provider, ServiceProviderInterface::class ) ) {
67 throw new ConfigurationException(
68 'The following class is not defined or does not implement ' .
69 ServiceProviderInterface::class . ': ' . $service_provider
70 );
71 }
72
73 // Provide container access to the service provider instance
74 // so bootstrap hooks can be unhooked e.g.:
75 // remove_action( 'some_action', [\App::resolve( SomeServiceProvider::class ), 'methodAddedToAction'] );
76 $container[ $service_provider ] = new $service_provider();
77
78 return $container[ $service_provider ];
79 }, $container[ WPEMERGE_SERVICE_PROVIDERS_KEY ] );
80
81 $this->registerServiceProviders( $service_providers, $container );
82 $this->bootstrapServiceProviders( $service_providers, $container );
83 }
84
85 /**
86 * Register all service providers.
87 *
88 * @param ServiceProviderInterface[] $service_providers
89 * @param Container $container
90 * @return void
91 */
92 protected function registerServiceProviders( $service_providers, Container $container ) {
93 foreach ( $service_providers as $provider ) {
94 $provider->register( $container );
95 }
96 }
97
98 /**
99 * Bootstrap all service providers.
100 *
101 * @param ServiceProviderInterface[] $service_providers
102 * @param Container $container
103 * @return void
104 */
105 protected function bootstrapServiceProviders( $service_providers, Container $container ) {
106 foreach ( $service_providers as $provider ) {
107 $provider->bootstrap( $container );
108 }
109 }
110 }
111