PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.0.1
Presto Player v4.0.1
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 9 months ago Contracts 1 year ago Database 1 year ago Integrations 1 year ago Libraries 1 year ago Models 9 months ago Seeds 1 year ago Services 9 months ago Support 9 months ago config 9 months ago Activator.php 1 year ago Attachment.php 1 year ago Controller.php 1 year ago Core.php 1 year ago Deactivator.php 1 year ago Factory.php 1 year ago Files.php 1 year ago Playlist.php 1 year ago Plugin.php 9 months ago Requirements.php 1 year ago support.php 1 year ago
Factory.php
124 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 = array( 'shared' => true );
17
18 public $instance;
19
20 public function __construct( $instance ) {
21 $this->instance = $instance;
22 }
23
24 public function isPro() {
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 return array(
37 BunnyCDN::class => self::SHARED,
38 Visits::class => self::SHARED,
39 ReusableVideos::class => self::SHARED,
40 AdminNotices::class => self::SHARED,
41
42 Settings::class => array(
43 'constructParams' => array(
44 $this->isPro(),
45 ),
46 ),
47
48 Attachment::class => array(
49 'constructParams' => array(
50 $this->isPro(),
51 ),
52 ),
53
54 // blocks
55 Block::class => array(
56 'constructParams' => array(
57 $this->isPro(),
58 $this->getPluginVersion( PRESTO_PLAYER_PLUGIN_FILE ),
59 ),
60 ),
61
62 // plugin controller
63 Controller::class => array(
64 'constructParams' => array( $this->getComponents() ),
65 ),
66
67 Scripts::class => array(
68 'shared' => true,
69 'constructParams' => array(
70 $this->isPro(),
71 $this->getPluginVersion( PRESTO_PLAYER_PLUGIN_FILE ),
72 ),
73 ),
74 );
75 }
76
77 /**
78 * Retrieves the plugin version.
79 *
80 * @param string $plugin_file The full plugin path.
81 *
82 * @return string
83 */
84 protected function getPluginVersion( $plugin_file ) {
85 // Load version from plugin data.
86 if ( ! \function_exists( 'get_plugin_data' ) ) {
87 require_once \ABSPATH . 'wp-admin/includes/plugin.php';
88 }
89
90 return \get_plugin_data( $plugin_file, false, false )['Version'];
91 }
92
93 /**
94 * Retrieves the list of plugin components run during normal operations
95 * (i.e. not including the Uninstallation component).
96 */
97 public function getComponents() {
98 $config = require_once 'config/app.php';
99 $components = $config['components'];
100 $components = array_merge( $components, $config['pro_components'] );
101
102 return $this->formatComponents( $components );
103 }
104
105 /**
106 * Formats components to use in DICE
107 *
108 * @param array $components
109 * @return array
110 */
111 public function formatComponents( $components = array() ) {
112 $formatted = array();
113
114 if ( ! $components ) {
115 return array();
116 }
117
118 foreach ( array_filter( $components ) as $component ) {
119 $formatted[] = array( $this->instance::INSTANCE => $component );
120 }
121 return $formatted;
122 }
123 }
124