PluginProbe
BeyondWords – AI audio for publishers / 4.2.3
BeyondWords – AI audio for publishers v4.2.3
7.1.0 trunk 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.1.0 4.1.1 4.1.2 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.3.0 4.4.0 4.5.0 4.5.1 4.6.0 4.6.1 4.6.2 4.7.0 All 43 releases
speechkit / src / Plugin.php

Plugin.php in BeyondWords – AI audio for publishers 4.2.3, at src/Plugin.php

150 lines 4.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Beyondwords\Wordpress;
6
7 use Beyondwords\Wordpress\Compatibility\Elementor\Elementor;
8 use Beyondwords\Wordpress\Core\ApiClient;
9 use Beyondwords\Wordpress\Core\Core;
10 use Beyondwords\Wordpress\Core\Player\LegacyPlayer;
11 use Beyondwords\Wordpress\Core\Player\Player;
12 use Beyondwords\Wordpress\Core\Updater;
13 use Beyondwords\Wordpress\Component\Post\AddPlayer\AddPlayer;
14 use Beyondwords\Wordpress\Component\Post\BlockAttributes\BlockAttributes;
15 use Beyondwords\Wordpress\Component\Post\DisplayPlayer\DisplayPlayer;
16 use Beyondwords\Wordpress\Component\Post\ErrorNotice\ErrorNotice;
17 use Beyondwords\Wordpress\Component\Post\GenerateAudio\GenerateAudio;
18 use Beyondwords\Wordpress\Component\Post\Metabox\Metabox;
19 use Beyondwords\Wordpress\Component\Post\Panel\Inspect\Inspect;
20 use Beyondwords\Wordpress\Component\Post\PlayerStyle\PlayerStyle;
21 use Beyondwords\Wordpress\Component\Post\SelectVoice\SelectVoice;
22 use Beyondwords\Wordpress\Component\Posts\Column\Column;
23 use Beyondwords\Wordpress\Component\Posts\BulkEdit\BulkEdit;
24 use Beyondwords\Wordpress\Component\Settings\ApiKey\ApiKey;
25 use Beyondwords\Wordpress\Component\Settings\Languages\Languages;
26 use Beyondwords\Wordpress\Component\Settings\Preselect\Preselect;
27 use Beyondwords\Wordpress\Component\Settings\PrependExcerpt\PrependExcerpt;
28 use Beyondwords\Wordpress\Component\Settings\PlayerUI\PlayerUI;
29 use Beyondwords\Wordpress\Component\Settings\PlayerStyle\PlayerStyle as PlayerStyleSetting;
30 use Beyondwords\Wordpress\Component\Settings\PlayerVersion\PlayerVersion;
31 use Beyondwords\Wordpress\Component\Settings\ProjectId\ProjectId;
32 use Beyondwords\Wordpress\Component\Settings\SettingsUpdated\SettingsUpdated;
33 use Beyondwords\Wordpress\Component\Settings\Settings;
34 use Beyondwords\Wordpress\Component\Settings\SettingsUtils;
35 use Beyondwords\Wordpress\Component\SiteHealth\SiteHealth;
36
37 /**
38 * Temprarily suppress some PHPMD warnings, these are fixed in the post-v4
39 * refactor branch anyway.
40 *
41 * @SuppressWarnings(PHPMD.TooManyFields)
42 * @SuppressWarnings(PHPMD.LongVariable)
43 */
44 class Plugin
45 {
46 public $updater;
47
48 public $elementor;
49
50 public $core;
51
52 public $player;
53
54 public $settings;
55
56 public $settingsApiKey;
57
58 public $settingsProjectId;
59
60 public $settingsPreselect;
61
62 public $settingsPrependExcerpt;
63
64 public $settingsPlayerVersion;
65
66 public $settingsPlayerUI;
67
68 public $settingsPlayerStyle;
69
70 public $settingsLanguages;
71
72 public $settingsSettingsUpdated;
73
74 public $column;
75
76 public $bulkEdit;
77
78 public $addPlayer;
79
80 public $blockAttributes;
81
82 public $errorNotice;
83
84 public $inspect;
85
86 public $metabox;
87
88 public $selectVoice;
89
90 public $siteHealth;
91
92 /**
93 * Constructor.
94 *
95 * @todo Replace properties like $this->updater with (new Updater())->init().
96 * Check PHP version support for this first.
97 */
98 public function __construct()
99 {
100 // First, run plugin update checks
101 $this->updater = new Updater();
102
103 // Elementor
104 $this->elementor = new Elementor();
105
106 // 1. Core
107 $apiClient = new ApiClient();
108 $this->core = new Core($apiClient);
109
110 // 2. Player
111 if (SettingsUtils::useLegacyPlayer()) {
112 $this->player = new LegacyPlayer();
113 } else {
114 $this->player = new Player();
115 }
116
117 // 3. Settings
118 $this->settings = new Settings($apiClient);
119 $this->settingsApiKey = new ApiKey();
120 $this->settingsProjectId = new ProjectId();
121 $this->settingsSettingsUpdated = new SettingsUpdated();
122 $this->settingsPreselect = new Preselect();
123 $this->settingsPrependExcerpt = new PrependExcerpt();
124 $this->settingsPlayerVersion = new PlayerVersion($apiClient);
125 $this->settingsPlayerUI = new PlayerUI();
126 $this->settingsPlayerStyle = new PlayerStyleSetting($apiClient);
127 $this->settingsLanguages = new Languages($apiClient);
128
129 // 4. Posts screen
130 $this->column = new Column();
131 $this->bulkEdit = new BulkEdit();
132
133 // 5. Post screen
134 $this->addPlayer = new AddPlayer();
135 $this->blockAttributes = new BlockAttributes();
136 $this->errorNotice = new ErrorNotice();
137 $this->inspect = new Inspect();
138
139 // 6. Post screen Metabox
140 $generateAudio = new GenerateAudio();
141 $displayPlayer = new DisplayPlayer();
142 $selectVoice = new SelectVoice($apiClient);
143 $playerStyle = new PlayerStyle();
144 $this->metabox = new Metabox($generateAudio, $displayPlayer, $selectVoice, $playerStyle);
145
146 // 7. Site Health
147 $this->siteHealth = new SiteHealth();
148 }
149 }
150