Server IP : 192.158.238.246 / Your IP : 18.119.121.38 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/root/proc/7779/cwd/plugins/give/src/MigrationLog/Helpers/ |
Upload File : |
<?php namespace Give\MigrationLog\Helpers; use Give\Framework\Migrations\Contracts\Migration; use Give\Framework\Migrations\MigrationsRegister; use Give\MigrationLog\MigrationLogModel; use Give\MigrationLog\MigrationLogRepository; /** * Class MigrationOrder * @package Give\MigrationLog\Helpers * * Helper class used to get migration data * * @since 2.10.0 */ class MigrationHelper { /** * @var MigrationsRegister */ private $migrationRegister; /** * @var MigrationLogRepository */ private $migrationRepository; /** * @var MigrationLogModel[] */ private $migrationsInDatabase; /** * MigrationOrder constructor. * * @param MigrationsRegister $migrationRegister * @param MigrationLogRepository $migrationRepository */ public function __construct( MigrationsRegister $migrationRegister, MigrationLogRepository $migrationRepository ) { $this->migrationRegister = $migrationRegister; $this->migrationRepository = $migrationRepository; } /** * Get migrations sorted by run order * * @since 2.10.0 * * @return array */ private function getMigrationsSorted() { static $migrations = []; if (empty($migrations)) { /* @var Migration $migrationClass */ foreach ($this->migrationRegister->getMigrations() as $migrationClass) { $migrations[$migrationClass::timestamp() . '_' . $migrationClass::id()] = $migrationClass::id(); } ksort($migrations); } return $migrations; } /** * Get pending migrations * * @since 2.10.0 * * @return string[] */ public function getPendingMigrations() { return array_filter( $this->migrationRegister->getMigrations(), function ($migrationClass) { /* @var Migration $migrationClass */ foreach ($this->getMigrationsInDatabase() as $migration) { if ($migration->getId() === $migrationClass::id()) { return false; } } return true; } ); } /** * Get migration run order * * @since 2.10.0 * * @param string $migrationId * * @return int */ public function getRunOrderForMigration($migrationId) { return array_search($migrationId, array_values($this->getMigrationsSorted())) + 1; } /** * Retrieves the migrations from the database, caching the results for future retrieval * * @since 2.10.1 * * @return MigrationLogModel[] */ private function getMigrationsInDatabase() { if ($this->migrationsInDatabase === null) { $this->migrationsInDatabase = $this->migrationRepository->getMigrations(); } return $this->migrationsInDatabase; } }