PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 3.1.0
Defender Security – Malware Scanner, Login Security & Firewall v3.1.0
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / src / component / security-tweaks / servers / server-factory.php

server-factory.php in Defender Security – Malware Scanner, Login Security & Firewall 3.1.0, at src/component/security-tweaks/servers/server-factory.php

99 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WP_Defender\Component\Security_Tweaks\Servers;
4
5 use WP_Error;
6 use Exception;
7
8 class Server_Factory {
9
10 /**
11 * Server name holder for showing notice.
12 *
13 * @var string
14 */
15 private $requested_server;
16
17 /**
18 * Server name holder.
19 *
20 * @var string
21 */
22 private $server = null;
23
24 /**
25 * Supported server list holder.
26 *
27 * @var array
28 */
29 private $servers = [];
30
31 /**
32 * Constructor method.
33 *
34 * @param string $server
35 *
36 * @return void
37 */
38 public function __construct( $server ) {
39 $this->requested_server = $server;
40
41 $this->get_supported_servers();
42
43 if ( empty( $this->servers[ $server ] ) ) {
44 global $defender_server_not_supported;
45
46 $defender_server_not_supported = new WP_Error(
47 'defender_not_supported_server',
48 sprintf( __( 'The <strong>%s</strong> server is not supported yet.', 'wpdef' ), $server )
49 );
50
51 // Using Apache as a fallback server not to showing errors.
52 $server = 'apache';
53 }
54
55 $this->server = $this->servers[ $server ];
56 }
57
58 /**
59 * Get supported servers.
60 *
61 * @return array
62 */
63 public function get_supported_servers() {
64 $this->servers = apply_filters( 'defender_get_supported_servers', [
65 'nginx' => 'Nginx',
66 'apache' => 'Apache',
67 'litespeed' => 'Apache', // We're going to use same server for Apache and LiteSpeed
68 'iis-7' => 'IIS_7',
69 'flywheel' => 'Flywheel',
70 'cloudflare'=> 'Flywheel', // We're going to use same server for Flywheel and Cloudflare
71 ] );
72 }
73
74 /**
75 * Get the server for specific service.
76 *
77 * @param string
78 *
79 * @return WP_Defender\Component\Security_Tweaks\Servers\[$server]
80 */
81 public function from( $service ) {
82 $server = __NAMESPACE__ . '\\' . $this->server;
83
84 if ( ! class_exists( $server ) ) {
85 global $defender_server_not_supported;
86
87 $defender_server_not_supported = new WP_Error(
88 'defender_not_supported_server',
89 sprintf( __( 'The <strong>%s</strong> server is not supported yet.', 'wpdef' ), $this->requested_server )
90 );
91
92 // Using Apache as a fallback server not to showing errors.
93 $server = __NAMESPACE__ . '\\' . 'Apache';
94 }
95
96 return new $server( $service );
97 }
98 }
99