PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.4
GiveWP – Donation Plugin and Fundraising Platform v2.19.4
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 / LegacySubscriptions / ServiceProvider.php
give / src / LegacySubscriptions Last commit date
includes 4 years ago ServiceProvider.php 4 years ago
ServiceProvider.php
106 lines
1 <?php
2
3 namespace Give\LegacySubscriptions;
4
5 use Closure;
6 use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
7
8 /**
9 * Class ServiceProvider - LegacySubscriptions
10 *
11 * This handles the loading of all the legacy codebase included in the LegacySubscriptions /includes directory.
12 * DO NOT EXTEND THIS WITH NEW CODE as it is intended to shrink over time as we migrate over
13 * to the new ways of doing things.
14 *
15 * @since 2.19.0
16 */
17 class ServiceProvider implements ServiceProviderInterface
18 {
19 /**
20 * @inheritDoc
21 */
22 public function register()
23 {
24 $recurringIsInstalled = defined('GIVE_RECURRING_VERSION') && GIVE_RECURRING_VERSION;
25 $recurringMeetsRequirements = $recurringIsInstalled && version_compare(GIVE_RECURRING_VERSION, '1.14.1', '>');
26
27 if ($recurringMeetsRequirements || !$recurringIsInstalled) {
28 $this->includeLegacyFiles();
29 $this->bindClasses();
30 }
31
32 $this->includeLegacyHelpers();
33 }
34
35 /**
36 * @inheritDoc
37 */
38 public function boot()
39 {
40 }
41
42 /**
43 * Load all the legacy class files since they don't have autoloading
44 *
45 * @since 2.19.0
46 */
47 private function includeLegacyFiles()
48 {
49 require_once __DIR__ . '/includes/give-subscriptions-db.php';
50 require_once __DIR__ . '/includes/give-recurring-db-subscription-meta.php';
51 require_once __DIR__ . '/includes/give-recurring-cache.php';
52 require_once __DIR__ . '/includes/give-subscription.php';
53 require_once __DIR__ . '/includes/give-subscriptions-api.php';
54 require_once __DIR__ . '/includes/give-recurring-subscriber.php';
55 require_once __DIR__ . '/includes/give-recurring-cron.php';
56 }
57
58 /**
59 * Load all the legacy helpers
60 *
61 * @since 2.19.0
62 */
63 private function includeLegacyHelpers()
64 {
65 require_once __DIR__ . '/includes/give-recurring-helpers.php';
66 }
67
68 /**
69 * Binds the legacy classes to the service provider
70 *
71 * @since 2.19.0
72 */
73 private function bindClasses()
74 {
75 $this->bindInstance(
76 'subscription_meta',
77 'Give_Recurring_DB_Subscription_Meta',
78 'give-recurring-db-subscription-meta.php'
79 );
80 }
81
82 /**
83 * A helper for loading legacy classes that do not use autoloading, then binding their instance
84 * to the container.
85 *
86 * @since 2.19.0
87 *
88 * @param string $alias
89 * @param string|Closure $class
90 * @param string $includesPath
91 * @param bool $singleton
92 */
93 private function bindInstance($alias, $class, $includesPath, $singleton = false)
94 {
95 require_once __DIR__ . "/includes/$includesPath";
96
97 if ($class instanceof Closure) {
98 give()->instance($alias, $class());
99 } elseif ($singleton) {
100 give()->instance($alias, $class::get_instance());
101 } else {
102 give()->instance($alias, new $class());
103 }
104 }
105 }
106