Done !
| Server IP : 46.105.57.169 / Your IP : 216.73.216.67 Web Server : Apache System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : verseaumee ( 152031) PHP Version : 8.5.7 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/verseaumee/blueversion/wp-content/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;
}
}