PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.8.1
GiveWP – Donation Plugin and Fundraising Platform v4.8.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 / TestData / ServiceProvider.php
give / src / TestData Last commit date
Addons 4 years ago Commands 4 years ago Factories 4 years ago Framework 1 year ago Repositories 4 years ago Addons.php 4 years ago ServiceProvider.php 1 year ago
ServiceProvider.php
115 lines
1 <?php
2
3 namespace Give\TestData;
4
5 use Composer\InstalledVersions;
6 use Faker\Factory as FakerFactory;
7 use Faker\Generator as FakerGenerator;
8 use Give\Framework\Exceptions\Primitives\InvalidArgumentException;
9 use Give\ServiceProviders\ServiceProvider as GiveServiceProvider;
10 use Give\TestData\Commands\DonationSeedCommand;
11 use Give\TestData\Commands\DonationStatusCommand;
12 use Give\TestData\Commands\DonorSeedCommand;
13 use Give\TestData\Commands\FormSeedCommand;
14 use Give\TestData\Commands\LogsSeedCommand;
15 use Give\TestData\Commands\PageSeedCommand;
16 use WP_CLI;
17
18 /**
19 * Class ServiceProvider
20 * @package Give\TestData
21 */
22 class ServiceProvider implements GiveServiceProvider
23 {
24 /**
25 * @inheritDoc
26 */
27 public function register()
28 {
29 if ( ! $this->isFakerInstalled()) {
30 return;
31 }
32
33 // Instead of passing around an instance, bind a singleton to the container.
34 give()->singleton(
35 FakerGenerator::class,
36 function () {
37 return FakerFactory::create();
38 }
39 );
40 }
41
42 /**
43 * @inheritDoc
44 */
45 public function boot()
46 {
47 if ( ! $this->isFakerInstalled()) {
48 return;
49 }
50
51 // Add CLI commands
52 if (defined('WP_CLI') && WP_CLI) {
53 $this->addCommands();
54
55 try {
56 $this->loadAddonsServiceProviders();
57 } catch (InvalidArgumentException $e) {
58 exit($e->getMessage());
59 }
60 }
61 }
62
63 /**
64 * Load addons service providers for TestData
65 */
66 private function loadAddonsServiceProviders()
67 {
68 $providers = [];
69
70 // Load Test Data add-ons Service Providers as they are not handled by Give
71 foreach (Addons::getActiveAddons() as $addon) {
72 if ( ! is_subclass_of($addon['serviceProvider'], GiveServiceProvider::class)) {
73 throw new InvalidArgumentException(
74 "{$addon['serviceProvider']} class must implement the ServiceProvider interface"
75 );
76 }
77
78 $addonServiceProvider = new $addon['serviceProvider']();
79 $addonServiceProvider->register();
80 $providers[] = $addonServiceProvider;
81 }
82
83 foreach ($providers as $addonServiceProvider) {
84 $addonServiceProvider->boot();
85 }
86 }
87
88 /**
89 * Add CLI comands
90 */
91 private function addCommands()
92 {
93 WP_CLI::add_command('give test-donors', give()->make(DonorSeedCommand::class));
94 WP_CLI::add_command('give test-donations', give()->make(DonationSeedCommand::class));
95 WP_CLI::add_command('give test-donation-statuses', give()->make(DonationStatusCommand::class));
96 WP_CLI::add_command('give test-demonstration-page', give()->make(PageSeedCommand::class));
97 WP_CLI::add_command('give test-donation-form', give()->make(FormSeedCommand::class));
98 WP_CLI::add_command('give test-logs', give()->make(LogsSeedCommand::class));
99 }
100
101 /**
102 * Helper function used to check if Faker library is installed
103 *
104 * @see https://getcomposer.org/doc/07-runtime.md#installed-versions
105 *
106 * @since 3.17.2
107 *
108 * @return bool
109 */
110 private function isFakerInstalled(): bool
111 {
112 return InstalledVersions::isInstalled('fakerphp/faker');
113 }
114 }
115