Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
primogenial
/
plugins
/
google-listings-and-ads
/
src
/
DB
:
Installer.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php declare( strict_types=1 ); namespace Automattic\WooCommerce\GoogleListingsAndAds\DB; use Automattic\WooCommerce\GoogleListingsAndAds\DB\Migration\Migrator; use Automattic\WooCommerce\GoogleListingsAndAds\Infrastructure\Service; use Automattic\WooCommerce\GoogleListingsAndAds\Internal\Interfaces\FirstInstallInterface; use Automattic\WooCommerce\GoogleListingsAndAds\Internal\Interfaces\InstallableInterface; defined( 'ABSPATH' ) || exit; /** * Class Installer * * @package Automattic\WooCommerce\GoogleListingsAndAds\DB */ class Installer implements Service, FirstInstallInterface, InstallableInterface { /** * @var TableManager */ protected $table_manager; /** * @var Migrator */ protected $migrator; /** * Installer constructor. * * @param TableManager $table_manager * @param Migrator $migrator */ public function __construct( TableManager $table_manager, Migrator $migrator ) { $this->table_manager = $table_manager; $this->migrator = $migrator; } /** * Run installation logic for this class. * * @param string $old_version Previous version before updating. * @param string $new_version Current version after updating. */ public function install( string $old_version, string $new_version ): void { foreach ( $this->table_manager->get_tables() as $table ) { $table->install(); } // Run migrations. $this->migrator->migrate( $old_version, $new_version ); } /** * Logic to run when the plugin is first installed. */ public function first_install(): void { foreach ( $this->table_manager->get_tables() as $table ) { if ( $table instanceof FirstInstallInterface ) { $table->first_install(); } } } }