| @@ -6,94 +6,91 @@ | ||
| 6 | 6 | |
| 7 | 7 | /** |
| 8 | 8 | * |
| 9 | 9 | */ |
| 10 | -class Migrations | |
| 11 | -{ | |
| 12 | - /** | |
| 13 | - * @var string | |
| 14 | - */ | |
| 15 | - protected $version_from; | |
| 10 | +class Migrations { | |
| 16 | 11 | |
| 17 | - /** | |
| 18 | - * @var string | |
| 19 | - */ | |
| 20 | - protected $version_to; | |
| 21 | 12 | |
| 22 | - /** | |
| 23 | - * @var string | |
| 24 | - */ | |
| 25 | - protected $migrations_dir; | |
| 13 | + /** | |
| 14 | + * @var float | |
| 15 | + */ | |
| 16 | + protected $version_from = 0; | |
| 26 | 17 | |
| 27 | - /** | |
| 28 | - * @param string $from | |
| 29 | - * @param string $to | |
| 30 | - * @param string $migrations_dir | |
| 31 | - */ | |
| 32 | - public function __construct($from, $to, $migrations_dir) | |
| 33 | - { | |
| 34 | - $this->version_from = $from; | |
| 35 | - $this->version_to = $to; | |
| 36 | - $this->migrations_dir = $migrations_dir; | |
| 37 | - } | |
| 18 | + /** | |
| 19 | + * @var float | |
| 20 | + */ | |
| 21 | + protected $version_to = 0; | |
| 38 | 22 | |
| 39 | - /** | |
| 40 | - * Run the various upgrade routines, all the way up to the latest version | |
| 41 | - */ | |
| 42 | - public function run() | |
| 43 | - { | |
| 44 | - $migrations = $this->find_migrations(); | |
| 45 | - // run in sub-function for scope | |
| 46 | - array_map([ $this, 'run_migration' ], $migrations); | |
| 47 | - } | |
| 23 | + /** | |
| 24 | + * @var string | |
| 25 | + */ | |
| 26 | + protected $migrations_dir = ''; | |
| 48 | 27 | |
| 49 | - /** | |
| 50 | - * @return array | |
| 51 | - */ | |
| 52 | - public function find_migrations() | |
| 53 | - { | |
| 54 | - $files = glob(rtrim($this->migrations_dir, '/') . '/*.php'); | |
| 55 | - $migrations = []; | |
| 28 | + /** | |
| 29 | + * @param float $from | |
| 30 | + * @param float $to | |
| 31 | + * @param string $migrations_dir | |
| 32 | + */ | |
| 33 | + public function __construct( $from, $to, $migrations_dir ) { | |
| 34 | + $this->version_from = $from; | |
| 35 | + $this->version_to = $to; | |
| 36 | + $this->migrations_dir = $migrations_dir; | |
| 37 | + } | |
| 56 | 38 | |
| 57 | - // return empty array when glob returns non-array value. | |
| 58 | - if (! is_array($files)) { | |
| 59 | - return $migrations; | |
| 60 | - } | |
| 39 | + /** | |
| 40 | + * Run the various upgrade routines, all the way up to the latest version | |
| 41 | + */ | |
| 42 | + public function run() { | |
| 43 | + $migrations = $this->find_migrations(); | |
| 44 | + // run in sub-function for scope | |
| 45 | + array_map( array( $this, 'run_migration' ), $migrations ); | |
| 46 | + } | |
| 61 | 47 | |
| 62 | - foreach ($files as $file) { | |
| 63 | - $migration = basename($file); | |
| 64 | - $parts = explode('-', $migration); | |
| 65 | - $version = $parts[0]; | |
| 48 | + /** | |
| 49 | + * @return array | |
| 50 | + */ | |
| 51 | + public function find_migrations() { | |
| 52 | + $files = glob( rtrim( $this->migrations_dir, '/' ) . '/*.php' ); | |
| 53 | + $migrations = array(); | |
| 66 | 54 | |
| 67 | - // check if migration file is not for an even higher version | |
| 68 | - if (version_compare($version, $this->version_to, '>')) { | |
| 69 | - continue; | |
| 70 | - } | |
| 55 | + // return empty array when glob returns non-array value. | |
| 56 | + if ( ! is_array( $files ) ) { | |
| 57 | + return $migrations; | |
| 58 | + } | |
| 71 | 59 | |
| 72 | - // check if we ran migration file before. | |
| 73 | - if (version_compare($this->version_from, $version, '>=')) { | |
| 74 | - continue; | |
| 75 | - } | |
| 60 | + foreach ( $files as $file ) { | |
| 61 | + $migration = basename( $file ); | |
| 62 | + $parts = explode( '-', $migration ); | |
| 63 | + $version = $parts[0]; | |
| 76 | 64 | |
| 77 | - // schedule migration file for running | |
| 78 | - $migrations[] = $file; | |
| 79 | - } | |
| 65 | + // check if migration file is not for an even higher version | |
| 66 | + if ( version_compare( $version, $this->version_to, '>' ) ) { | |
| 67 | + continue; | |
| 68 | + } | |
| 80 | 69 | |
| 81 | - return $migrations; | |
| 82 | - } | |
| 70 | + // check if we ran migration file before. | |
| 71 | + if ( version_compare( $this->version_from, $version, '>=' ) ) { | |
| 72 | + continue; | |
| 73 | + } | |
| 83 | 74 | |
| 84 | - /** | |
| 85 | - * Include a migration file and runs it. | |
| 86 | - * | |
| 87 | - * @param string $file | |
| 88 | - * | |
| 89 | - * @throws Exception | |
| 90 | - */ | |
| 91 | - protected function run_migration($file) | |
| 92 | - { | |
| 93 | - if (! file_exists($file)) { | |
| 94 | - throw new Exception(sprintf('Migration file %s does not exist.', esc_html(basename((string) $file)))); | |
| 95 | - } | |
| 75 | + // schedule migration file for running | |
| 76 | + $migrations[] = $file; | |
| 77 | + } | |
| 96 | 78 | |
| 97 | - include $file; | |
| 98 | - } | |
| 79 | + return $migrations; | |
| 80 | + } | |
| 81 | + | |
| 82 | + /** | |
| 83 | + * Include a migration file and runs it. | |
| 84 | + * | |
| 85 | + * @param string $file | |
| 86 | + * | |
| 87 | + * @throws Exception | |
| 88 | + */ | |
| 89 | + protected function run_migration( $file ) { | |
| 90 | + if ( ! file_exists( $file ) ) { | |
| 91 | + throw new Exception( "Migration file $file does not exist." ); | |
| 92 | + } | |
| 93 | + | |
| 94 | + include $file; | |
| 95 | + } | |
| 99 | 96 | } |