Current Path : /var/www/ooareogundevinitiative/wp-content/plugins/brizy/admin/migrations/ |
Current File : /var/www/ooareogundevinitiative/wp-content/plugins/brizy/admin/migrations/abstract-storage.php |
<?php abstract class Brizy_Admin_Migrations_AbstractStorage { const KEY = 'brizy-migrations'; /** * @var Brizy_Admin_Migrations_MigrationInterface[] */ protected $data; /** * Brizy_Admin_Migations_AbstractStorage constructor. */ public function __construct() { $this->data = array(); $this->loadData(); } /** * Save run migrations * * @return mixed */ abstract protected function storeData(); /** * @return mixed */ abstract protected function loadData(); /** * @return $this */ public function save() { $this->storeData(); return $this; } /** * @param Brizy_Admin_Migrations_MigrationInterface $migration * * @return $this */ public function addMigration( Brizy_Admin_Migrations_MigrationInterface $migration ) { if ( ! $this->hasMigration( $migration ) ) { $this->data[] = $migration; } return $this; } /** * @@return Brizy_Admin_Migrations_MigrationInterface[] */ public function getMigrations() { return $this->data; } /** * @param Brizy_Admin_Migrations_MigrationInterface $amigratoin * * @return bool */ public function hasMigration( Brizy_Admin_Migrations_MigrationInterface $amigratoin ) { $aMigrationClass = get_class( $amigratoin ); foreach ( $this->data as $migration ) { if ( get_class( $migration ) == $aMigrationClass ) { return true; } } return false; } /** * @return Brizy_Admin_Migrations_MigrationInterface|mixed */ public function latestMigration() { return end( $this->data ); } }