PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / trunk
Advanced Access Manager – Access Governance for WordPress vtrunk
6.8.4 6.8.5 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13 6.9.14 6.9.15 6.9.16 6.9.17 6.9.18 6.9.19 6.9.2 6.9.20 6.9.21 6.9.22 6.9.23 6.9.24 6.9.25 6.9.26 6.9.27 6.9.28 6.9.29 6.9.3 6.9.30 6.9.31 6.9.32 6.9.33 6.9.34 6.9.35 6.9.36 6.9.37 6.9.38 6.9.39 6.9.4 6.9.41 6.9.42 6.9.43 6.9.44 6.9.45 6.9.46 6.9.47 6.9.48 6.9.49 6.9.5 6.9.51 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.0-alpha.6 7.0.0-alpha.7 7.0.0-beta.1 7.0.0-rc1 7.0.0-rc2 7.0.0-rc3 7.0.1 7.0.10 7.0.11 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7 7.0.8 7.0.9 7.1.0 7.1.1 trunk 3.0 4.0 4.0.1 4.1 4.2 4.3 4.4 4.4.1 4.5 4.6 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.7.5 4.7.6 4.8 4.8.1 4.9 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.5.1 4.9.5.2 5.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1 5.1.1 5.10 5.11 5.2 5.2.1 5.2.5 5.2.6 5.2.7 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 5.4.1 5.4.2 5.4.3 5.4.3.1 5.4.3.2 5.5 5.5.1 5.5.2 5.6 5.6.1 5.6.1.1 5.7 5.7.1 5.7.2 5.7.3 5.8 5.8.1 5.8.2 5.8.3 5.9 5.9.1 5.9.1.1 5.9.2 5.9.2.1 5.9.3 5.9.4 5.9.5 5.9.6 5.9.6.1 5.9.6.2 5.9.6.3 5.9.7 5.9.7.1 5.9.7.2 5.9.7.3 5.9.8 5.9.8.1 5.9.9 5.9.9.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.2.0 6.2.1 6.2.2 6.3.0 6.3.1 6.3.2 6.3.3 6.4.0 6.4.1 6.4.2 6.4.3 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.6.0 6.6.1 6.6.2 6.6.3 6.6.4 6.7.0 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.7.7 6.7.8 6.7.9 6.8.0 6.8.1 6.8.2 6.8.3
advanced-access-manager / application / Core / Migration.php
advanced-access-manager / application / Core Last commit date
Console.php 1 year ago Gateway.php 9 months ago Migration.php 1 year ago
Migration.php
82 lines
1 <?php
2
3 /**
4 * ======================================================================
5 * LICENSE: This file is subject to the terms and conditions defined in *
6 * file 'license.txt', which is part of this source code package. *
7 * ======================================================================
8 */
9
10 /**
11 * AAM Core Migration class
12 *
13 * @package AAM
14 * @version 7.0.0
15 */
16 final class AAM_Core_Migration
17 {
18
19 /**
20 * DB option that stores list of migration scripts that were completed
21 *
22 * @version 7.0.0
23 */
24 const DB_OPTION = 'aam_migrations';
25
26 /**
27 * Run the pending scripts
28 *
29 * @return void
30 * @access public
31 *
32 * @version 7.0.0
33 */
34 public static function run()
35 {
36 $completed = AAM::api()->db->read(self::DB_OPTION);
37
38 foreach(self::get_pending() as $script) {
39 if (file_exists($script)) {
40 $results = include $script;
41 $completed[] = basename($script);
42
43 AAM::api()->db->write(self::DB_OPTION, $completed);
44 } else {
45 $results = [];
46 }
47
48 return $results;
49 }
50 }
51
52 /**
53 * Get list of migrations that are still pending to be executed
54 *
55 * @return array
56 * @access public
57 *
58 * @version 7.0.0
59 */
60 public static function get_pending()
61 {
62 $completed = AAM::api()->db->read(self::DB_OPTION, []);
63 $pending = [];
64 $iterator = null;
65 $dirname = dirname(__DIR__) . '/Migration';
66
67 if (file_exists($dirname)) {
68 $iterator = new DirectoryIterator($dirname);
69 }
70
71 if (is_a($iterator, DirectoryIterator::class)) {
72 foreach ($iterator as $mg) {
73 if ($mg->isFile() && !in_array($mg->getFilename(), $completed, true)) {
74 $pending[] = $mg->getPathname();
75 }
76 }
77 }
78
79 return $pending;
80 }
81
82 }