PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.0.2
Presto Player v2.0.2
4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / inc / Factory.php
presto-player / inc Last commit date
Blocks 2 years ago Contracts 5 years ago Database 3 years ago Integrations 2 years ago Libraries 5 years ago Models 2 years ago Seeds 4 years ago Services 2 years ago Support 2 years ago config 2 years ago Activator.php 5 years ago Attachment.php 4 years ago Controller.php 5 years ago Core.php 5 years ago Deactivator.php 3 years ago Factory.php 5 years ago Files.php 5 years ago Playlist.php 2 years ago Plugin.php 5 years ago Requirements.php 4 years ago support.php 4 years ago
Factory.php
129 lines
1 <?php
2
3 namespace PrestoPlayer;
4
5 use PrestoPlayer\Plugin;
6 use PrestoPlayer\Attachment;
7 use PrestoPlayer\Controller;
8 use PrestoPlayer\Support\Block;
9 use PrestoPlayer\Services\Scripts;
10 use PrestoPlayer\Services\BunnyCDN;
11 use PrestoPlayer\Services\Settings;
12 use PrestoPlayer\Services\AdminNotices;
13
14 class Factory
15 {
16 const SHARED = ['shared' => true];
17
18 public function __construct($instance)
19 {
20 $this->instance = $instance;
21 }
22
23 public function isPro()
24 {
25 return Plugin::isPro();
26 }
27
28 /**
29 * Retrieves the rules for setting up the plugin.
30 *
31 * @since 2.1.0
32 *
33 * @return array
34 */
35 public function getRules()
36 {
37 return [
38 BunnyCDN::class => self::SHARED,
39 Visits::class => self::SHARED,
40 ReusableVideos::class => self::SHARED,
41 AdminNotices::class => self::SHARED,
42
43 Settings::class => [
44 'constructParams' => [
45 $this->isPro(),
46 ]
47 ],
48
49
50 Attachment::class => [
51 'constructParams' => [
52 $this->isPro(),
53 ]
54 ],
55
56 // blocks
57 Block::class => [
58 'constructParams' => [
59 $this->isPro(),
60 $this->getPluginVersion(PRESTO_PLAYER_PLUGIN_FILE)
61 ]
62 ],
63
64 // plugin controller
65 Controller::class => [
66 'constructParams' => [$this->getComponents()]
67 ],
68
69 Scripts::class => [
70 'shared' => true,
71 'constructParams' => [
72 $this->isPro(),
73 $this->getPluginVersion(PRESTO_PLAYER_PLUGIN_FILE)
74 ]
75 ]
76 ];
77 }
78
79 /**
80 * Retrieves the plugin version.
81 *
82 * @param string $plugin_file The full plugin path.
83 *
84 * @return string
85 */
86 protected function getPluginVersion($plugin_file)
87 {
88 // Load version from plugin data.
89 if (!\function_exists('get_plugin_data')) {
90 require_once \ABSPATH . 'wp-admin/includes/plugin.php';
91 }
92
93 return \get_plugin_data($plugin_file, false, false)['Version'];
94 }
95
96 /**
97 * Retrieves the list of plugin components run during normal operations
98 * (i.e. not including the Uninstallation component).
99 */
100 public function getComponents()
101 {
102 $config = require_once 'config/app.php';
103 $components = $config['components'];
104 $components = array_merge($components, $config['pro_components']);
105
106 return $this->formatComponents($components);
107 }
108
109 /**
110 * Formats components to use in DICE
111 *
112 * @param array $components
113 * @return array
114 */
115 public function formatComponents($components = [])
116 {
117 $formatted = [];
118
119 if (!$components) {
120 return [];
121 }
122
123 foreach (array_filter($components) as $component) {
124 $formatted[] = [$this->instance::INSTANCE => $component];
125 }
126 return $formatted;
127 }
128 }
129