PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.2
GiveWP – Donation Plugin and Fundraising Platform v2.9.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 5 years ago Contracts 5 years ago Controllers 5 years ago Exceptions 5 years ago MigrationsRegister.php 5 years ago MigrationsRunner.php 5 years ago MigrationsServiceProvider.php 5 years ago
MigrationsRegister.php
104 lines
1 <?php
2
3 namespace Give\Framework\Migrations;
4
5 use Give\Framework\Migrations\Contracts\Migration;
6 use http\Exception\InvalidArgumentException;
7
8 class MigrationsRegister {
9 /**
10 * FQCN of Migration classes
11 *
12 * @since 2.9.0
13 *
14 * @var string[]
15 */
16 private $migrations = [];
17
18 /**
19 * Returns all of the registered migrations
20 *
21 * @since 2.9.0
22 *
23 * @return string[]
24 */
25 public function getMigrations() {
26 return $this->migrations;
27 }
28
29 /**
30 * Checks to see if a migration is registered with the given ID
31 *
32 * @since 2.9.2
33 *
34 * @param string $id
35 *
36 * @return bool
37 */
38 public function hasMigration( $id ) {
39 return isset( $this->migrations[ $id ] );
40 }
41
42 /**
43 * Returns a migration with the given ID
44 *
45 * @since 2.9.2
46 *
47 * @param string $id
48 *
49 * @return string
50 */
51 public function getMigration( $id ) {
52 if ( ! isset( $this->migrations[ $id ] ) ) {
53 throw new InvalidArgumentException( "No migration exists with the ID {$id}" );
54 }
55
56 return $this->migrations[ $id ];
57 }
58
59 /**
60 * Returns all of the registered migration ids
61 *
62 * @since 2.9.0
63 *
64 * @return string[]
65 */
66 public function getRegisteredIds() {
67 return array_keys( $this->migrations );
68 }
69
70 /**
71 * Add a migration to the list of migrations
72 *
73 * @since 2.9.0
74 *
75 * @param string $migrationClass FQCN of the Migration Class
76 */
77 public function addMigration( $migrationClass ) {
78 if ( ! is_subclass_of( $migrationClass, Migration::class ) ) {
79 throw new InvalidArgumentException( 'Class must extend the ' . Migration::class . ' class' );
80 }
81
82 $migrationId = $migrationClass::id();
83
84 if ( isset( $this->migrations[ $migrationId ] ) ) {
85 throw new InvalidArgumentException( 'A migration can only be added once. Make sure there are not id conflicts.' );
86 }
87
88 $this->migrations[ $migrationId ] = $migrationClass;
89 }
90
91 /**
92 * Helper for adding a bunch of migrations at once
93 *
94 * @since 2.9.0
95 *
96 * @param string[] $migrationClasses
97 */
98 public function addMigrations( array $migrationClasses ) {
99 foreach ( $migrationClasses as $migrationClass ) {
100 $this->addMigration( $migrationClass );
101 }
102 }
103 }
104