PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.27.2
GiveWP – Donation Plugin and Fundraising Platform v2.27.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / Migrations / MigrationsRegister.php
give / src / Framework / Migrations Last commit date
Actions 4 years ago Contracts 4 years ago Controllers 4 years ago Exceptions 4 years ago MigrationsRegister.php 4 years ago MigrationsRunner.php 4 years ago MigrationsServiceProvider.php 4 years ago
MigrationsRegister.php
113 lines
1 <?php
2
3 namespace Give\Framework\Migrations;
4
5 use Give\Framework\Exceptions\Primitives\InvalidArgumentException;
6 use Give\Framework\Migrations\Contracts\Migration;
7
8 class MigrationsRegister
9 {
10 /**
11 * FQCN of Migration classes
12 *
13 * @since 2.9.0
14 *
15 * @var string[]
16 */
17 private $migrations = [];
18
19 /**
20 * Returns all of the registered migrations
21 *
22 * @since 2.9.0
23 *
24 * @return string[]
25 */
26 public function getMigrations()
27 {
28 return $this->migrations;
29 }
30
31 /**
32 * Checks to see if a migration is registered with the given ID
33 *
34 * @since 2.9.2
35 *
36 * @param string $id
37 *
38 * @return bool
39 */
40 public function hasMigration($id)
41 {
42 return isset($this->migrations[$id]);
43 }
44
45 /**
46 * Returns a migration with the given ID
47 *
48 * @since 2.9.2
49 *
50 * @param string $id
51 *
52 * @return string
53 */
54 public function getMigration($id)
55 {
56 if ( ! isset($this->migrations[$id])) {
57 throw new InvalidArgumentException("No migration exists with the ID {$id}");
58 }
59
60 return $this->migrations[$id];
61 }
62
63 /**
64 * Returns all of the registered migration ids
65 *
66 * @since 2.9.0
67 *
68 * @return string[]
69 */
70 public function getRegisteredIds()
71 {
72 return array_keys($this->migrations);
73 }
74
75 /**
76 * Add a migration to the list of migrations
77 *
78 * @since 2.9.0
79 *
80 * @param string $migrationClass FQCN of the Migration Class
81 */
82 public function addMigration($migrationClass)
83 {
84 if ( ! is_subclass_of($migrationClass, Migration::class)) {
85 throw new InvalidArgumentException('Class must extend the ' . Migration::class . ' class');
86 }
87
88 $migrationId = $migrationClass::id();
89
90 if (isset($this->migrations[$migrationId])) {
91 throw new InvalidArgumentException(
92 'A migration can only be added once. Make sure there are not id conflicts.'
93 );
94 }
95
96 $this->migrations[$migrationId] = $migrationClass;
97 }
98
99 /**
100 * Helper for adding a bunch of migrations at once
101 *
102 * @since 2.9.0
103 *
104 * @param string[] $migrationClasses
105 */
106 public function addMigrations(array $migrationClasses)
107 {
108 foreach ($migrationClasses as $migrationClass) {
109 $this->addMigration($migrationClass);
110 }
111 }
112 }
113