PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.1
GiveWP – Donation Plugin and Fundraising Platform v2.9.1
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
Contracts 5 years ago MigrationsRegister.php 5 years ago MigrationsRunner.php 5 years ago MigrationsServiceProvider.php 5 years ago
MigrationsRegister.php
74 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 * Returns all of the registered migration ids
31 *
32 * @since 2.9.0
33 *
34 * @return string[]
35 */
36 public function getRegisteredIds() {
37 return array_keys( $this->migrations );
38 }
39
40 /**
41 * Add a migration to the list of migrations
42 *
43 * @since 2.9.0
44 *
45 * @param string $migrationClass FQCN of the Migration Class
46 */
47 public function addMigration( $migrationClass ) {
48 if ( ! is_subclass_of( $migrationClass, Migration::class ) ) {
49 throw new InvalidArgumentException( 'Class must extend the ' . Migration::class . ' class' );
50 }
51
52 $migrationId = $migrationClass::id();
53
54 if ( isset( $this->migrations[ $migrationId ] ) ) {
55 throw new InvalidArgumentException( 'A migration can only be added once. Make sure there are not id conflicts.' );
56 }
57
58 $this->migrations[ $migrationId ] = $migrationClass;
59 }
60
61 /**
62 * Helper for adding a bunch of migrations at once
63 *
64 * @since 2.9.0
65 *
66 * @param string[] $migrationClasses
67 */
68 public function addMigrations( array $migrationClasses ) {
69 foreach ( $migrationClasses as $migrationClass ) {
70 $this->addMigration( $migrationClass );
71 }
72 }
73 }
74