forked from getdokan/dokan
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathServiceProvider.php
More file actions
98 lines (90 loc) · 4.21 KB
/
ServiceProvider.php
File metadata and controls
98 lines (90 loc) · 4.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
namespace WeDevs\Dokan\DependencyManagement\Providers;
use WeDevs\Dokan\DependencyManagement\BootableServiceProvider;
/**
* ServiceProvider Class
*
* Manages the registration and booting of Dokan's core services within the container.
* This service provider handles the core services with the Dokan's
* dependency injection container.
*
* @since 3.13.0
*/
class ServiceProvider extends BootableServiceProvider {
/**
* Tag for services added to the container.
*/
public const TAG = 'container-service';
protected $services = [
'product_block' => \WeDevs\Dokan\Blocks\ProductBlock::class,
'pageview' => \WeDevs\Dokan\PageViews::class,
'seller_wizard' => \WeDevs\Dokan\Vendor\SetupWizard::class,
'core' => \WeDevs\Dokan\Core::class,
'scripts' => \WeDevs\Dokan\Assets::class,
'email' => \WeDevs\Dokan\Emails\Manager::class,
'vendor' => \WeDevs\Dokan\Vendor\Manager::class,
'product' => \WeDevs\Dokan\Product\Manager::class,
'shortcodes' => \WeDevs\Dokan\Shortcodes\Shortcodes::class,
'registration' => \WeDevs\Dokan\Registration::class,
'order' => \WeDevs\Dokan\Order\Manager::class,
'order_controller' => \WeDevs\Dokan\Order\Controller::class,
'api' => \WeDevs\Dokan\REST\Manager::class,
'withdraw' => \WeDevs\Dokan\Withdraw\Manager::class,
'dashboard' => \WeDevs\Dokan\Dashboard\Manager::class,
'commission' => \WeDevs\Dokan\Commission::class,
'fees' => \WeDevs\Dokan\Fees::class,
'customizer' => \WeDevs\Dokan\Customizer::class,
'upgrades' => \WeDevs\Dokan\Upgrade\Manager::class,
'product_sections' => \WeDevs\Dokan\ProductSections\Manager::class,
'reverse_withdrawal' => \WeDevs\Dokan\ReverseWithdrawal\ReverseWithdrawal::class,
'dummy_data_importer' => \WeDevs\Dokan\DummyData\Importer::class,
'catalog_mode' => \WeDevs\Dokan\CatalogMode\Controller::class,
'bg_process' => \WeDevs\Dokan\BackgroundProcess\Manager::class,
'frontend_manager' => \WeDevs\Dokan\Frontend\Frontend::class,
'rewrite' => \WeDevs\Dokan\Rewrites::class,
'widgets' => \WeDevs\Dokan\Widgets\Manager::class,
'admin_notices' => \WeDevs\Dokan\Admin\Notices\Manager::class,
'tracker' => \WeDevs\Dokan\Tracker::class,
];
/**
* @inheritDoc
*
* @return void
*/
public function boot(): void {
$this->getContainer()->addServiceProvider( new AdminServiceProvider() );
$this->getContainer()->addServiceProvider( new CommonServiceProvider() );
$this->getContainer()->addServiceProvider( new FrontendServiceProvider() );
$this->getContainer()->addServiceProvider( new AjaxServiceProvider() );
$this->getContainer()->addServiceProvider( new AnalyticsServiceProvider() );
$this->getContainer()->addServiceProvider( new UtilsServiceProvider() );
$this->getContainer()->addServiceProvider( new CommissionServiceProvider() );
$this->getContainer()->addServiceProvider( new IntelligenceServiceProvider() );
$this->getContainer()->addServiceProvider( new AdminDashboardServiceProvider() );
$this->getContainer()->addServiceProvider( new AdminSetupGuideServiceProvider() );
$this->getContainer()->addServiceProvider( new ModelServiceProvider() );
$this->getContainer()->addServiceProvider( new CaptchaServiceProvider() );
}
/**
* {@inheritDoc}
*
* Check if the service provider can provide the given service alias.
*
* @param string $alias The service alias to check.
* @return bool True if the service provider can provide the service, false otherwise.
*/
public function provides( string $alias ): bool {
if ( isset( $this->services[ $alias ] ) ) {
return true;
}
return parent::provides( $alias );
}
/**
* Register the classes.
*/
public function register(): void {
foreach ( $this->services as $key => $class_name ) {
$this->getContainer()->addShared( $key, $class_name )->addTag( self::TAG );
}
}
}