PluginProbe
Depicter — Popup & Slider Builder / trunk
Depicter — Popup & Slider Builder vtrunk
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 / app / src / Database / DatabaseServiceProvider.php

DatabaseServiceProvider.php in Depicter — Popup & Slider Builder trunk, at app/src/Database/DatabaseServiceProvider.php

113 lines 2.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Depicter\Database;
4
5 use Averta\WordPress\Database\ORM\ORM;
6 use Depicter\Database\Repository\DocumentAnalyticsRepository;
7 use Depicter\Database\Repository\DocumentRepository;
8 use Depicter\Database\Repository\LeadFieldRepository;
9 use Depicter\Database\Repository\LeadRepository;
10 use Depicter\Database\Repository\MetaRepository;
11 use Depicter\Database\Repository\QueueJobRepository;
12 use WPEmerge\ServiceProviders\ServiceProviderInterface;
13
14 /**
15 * Load document data manager.
16 */
17 class DatabaseServiceProvider implements ServiceProviderInterface {
18
19 /**
20 * {@inheritDoc}
21 */
22 /**
23 * {@inheritDoc}
24 */
25 public function register( $container ) {
26 $container[ 'depicter.database.migration' ] = function () {
27 return new Migration();
28 };
29
30 $container[ 'depicter.database.repository.document' ] = function () {
31 return new DocumentRepository();
32 };
33
34 $container[ 'depicter.database.repository.meta' ] = function () {
35 return new MetaRepository();
36 };
37
38 $container[ 'depicter.database.repository.lead' ] = function () {
39 return new LeadRepository();
40 };
41
42 $container[ 'depicter.database.repository.lead.field' ] = function () {
43 return new LeadFieldRepository();
44 };
45
46 $container[ 'depicter.database.repository.queue.jobs' ] = function () {
47 return new QueueJobRepository();
48 };
49
50 $container[ 'depicter.database.repository.document.analytics' ] = function () {
51 return new DocumentAnalyticsRepository();
52 };
53
54 $app = $container[ WPEMERGE_APPLICATION_KEY ];
55 $app->alias( 'documentRepository', 'depicter.database.repository.document' );
56 $app->alias( 'metaRepository', 'depicter.database.repository.meta' );
57 $app->alias( 'leadRepository', 'depicter.database.repository.lead' );
58 $app->alias( 'leadFieldRepository', 'depicter.database.repository.lead.field' );
59 $app->alias( 'queueJobsRepository', 'depicter.database.repository.queue.jobs' );
60 $app->alias( 'documentAnalyticsRepository', 'depicter.database.repository.document.analytics' );
61 }
62
63 /**
64 * {@inheritDoc}
65 */
66 public function bootstrap( $container ) {
67 register_activation_hook( DEPICTER_PLUGIN_FILE, [ $this, 'activate' ] );
68 add_action( 'wp_insert_site', [ $this, 'activateSingle' ] );
69 add_action( 'depicter/plugin/updated', [ $this, 'migrate' ] );
70
71 add_action( 'plugins_loaded', [ ORM::class, 'init'] );
72 }
73
74 /**
75 * Plugin activation.
76 *
77 * @return void
78 */
79 public function activate( $network_wide ) {
80 if ( $network_wide ) {
81 $sites = get_sites();
82 foreach( $sites as $site ) {
83 $this->activateSingle( $site );
84 }
85 } else {
86 $this->migrate();
87 }
88 }
89
90 /**
91 * Plugin activation on a site
92 *
93 * @param \WP_Site $site
94 *
95 * @return void
96 */
97 public function activateSingle( $site ) {
98 switch_to_blog( $site->blog_id );
99 $this->migrate();
100 restore_current_blog();
101 }
102
103 /**
104 * Create or update plugin tables
105 *
106 * @return void
107 */
108 public function migrate() {
109 \Depicter::resolve( 'depicter.database.migration' )->migrate(true);
110 }
111
112 }
113