alias( 'documentRepository', 'depicter.database.repository.document' ); $app->alias( 'metaRepository', 'depicter.database.repository.meta' ); $app->alias( 'leadRepository', 'depicter.database.repository.lead' ); $app->alias( 'leadFieldRepository', 'depicter.database.repository.lead.field' ); $app->alias( 'queueJobsRepository', 'depicter.database.repository.queue.jobs' ); $app->alias( 'documentAnalyticsRepository', 'depicter.database.repository.document.analytics' ); } /** * {@inheritDoc} */ public function bootstrap( $container ) { register_activation_hook( DEPICTER_PLUGIN_FILE, [ $this, 'activate' ] ); add_action( 'wp_insert_site', [ $this, 'activateSingle' ] ); add_action( 'depicter/plugin/updated', [ $this, 'migrate' ] ); add_action( 'plugins_loaded', [ ORM::class, 'init'] ); } /** * Plugin activation. * * @return void */ public function activate( $network_wide ) { if ( $network_wide ) { $sites = get_sites(); foreach( $sites as $site ) { $this->activateSingle( $site ); } } else { $this->migrate(); } } /** * Plugin activation on a site * * @param \WP_Site $site * * @return void */ public function activateSingle( $site ) { switch_to_blog( $site->blog_id ); $this->migrate(); restore_current_blog(); } /** * Create or update plugin tables * * @return void */ public function migrate() { \Depicter::resolve( 'depicter.database.migration' )->migrate(true); } }