@@ -17,103 +17,102 @@ function s24_load_environment_config() {
17
17
global $ argv ;
18
18
19
19
// Set env if set via environment variable
20
- if (getenv ('WP_ENV ' ) !== false && ! empty ( getenv ( ' WP_ENV ' )) ) {
20
+ if (getenv ('WP_ENV ' ) !== false ) {
21
21
define ('WP_ENV ' , preg_replace ('/[^a-z]/ ' , '' , getenv ('WP_ENV ' )));
22
22
}
23
23
24
24
// Set env via --env=<environment> argument if running via WP-CLI
25
25
if (!defined ('WP_ENV ' ) && PHP_SAPI == "cli " && defined ('WP_CLI_ROOT ' )) {
26
- foreach ($ argv as $ arg ) {
27
- if (preg_match ('/--env=(.+)/ ' , $ arg , $ m )) {
28
- define ('WP_ENV ' , $ m [1 ]);
29
- break ;
26
+
27
+ if (isset ($ argv )) {
28
+ foreach ($ argv as $ arg ) {
29
+ if (preg_match ('/--env=(.+)/ ' , $ arg , $ m )) {
30
+ define ('WP_ENV ' , $ m [1 ]);
31
+ break ;
32
+ }
30
33
}
31
34
}
35
+
32
36
// Also support via .env file in config directory
33
37
if (!defined ('WP_ENV ' )) {
34
38
if (file_exists (__DIR__ . '/.env ' )) {
35
39
$ environment = trim (file_get_contents (__DIR__ . '/.env ' ));
36
- $ value = preg_replace ('/[^a-z]/ ' , '' , $ environment );
37
- if (!empty ($ value )) {
38
- define ('WP_ENV ' , $ value );
39
- }
40
+ define ('WP_ENV ' , preg_replace ('/[^a-z]/ ' , '' , $ environment ));
40
41
}
41
42
}
42
43
}
43
44
44
- // Define site host
45
- if (isset ($ _SERVER ['HTTP_X_FORWARDED_HOST ' ]) && !empty ($ _SERVER ['HTTP_X_FORWARDED_HOST ' ])) {
46
- $ hostname = strtolower (filter_var ($ _SERVER ['HTTP_X_FORWARDED_HOST ' ], FILTER_SANITIZE_STRING ));
47
- } elseif (isset ($ _SERVER ['HTTP_HOST ' ])) {
48
- $ hostname = strtolower (filter_var ($ _SERVER ['HTTP_HOST ' ], FILTER_SANITIZE_STRING ));
49
- }
50
-
51
- if (!defined ('WP_ENV ' ) && empty ($ hostname )) {
52
- throw new Exception ("Cannot determine current environment via WP_ENV or hostname " );
45
+ // Define ENV from hostname
46
+ if (!defined ('WP_ENV ' )) {
47
+ if (isset ($ _SERVER ['HTTP_X_FORWARDED_HOST ' ]) && !empty ($ _SERVER ['HTTP_X_FORWARDED_HOST ' ])) {
48
+ $ hostname = strtolower (filter_var ($ _SERVER ['HTTP_X_FORWARDED_HOST ' ], FILTER_SANITIZE_STRING ));
49
+ } else {
50
+ $ hostname = strtolower (filter_var ($ _SERVER ['HTTP_HOST ' ], FILTER_SANITIZE_STRING ));
51
+ }
53
52
}
54
53
55
54
// Load environments
56
55
require __DIR__ . '/wp-config.env.php ' ;
57
56
58
- /*
59
- * If the hostname isn't already defined (if we are interacting with WordPress
60
- * via the CLI for example) then get the Hostname using the WP_ENV environment
61
- * variable
62
- */
63
- if (empty ($ hostname ) && isset ($ env [WP_ENV ])) {
64
- if (is_array ($ env [WP_ENV ]['domain ' ])) {
65
- // Take first defined domain if config has an array of domains
66
- $ hostname = $ env [WP_ENV ]['domain ' ][0 ];
67
- } else {
68
- $ hostname = $ env [WP_ENV ]['domain ' ];
57
+ // Set environment constants
58
+ if (defined ('WP_ENV ' )) {
59
+ if (isset ($ env [WP_ENV ])) {
60
+ define ('WP_ENV_DOMAIN ' , $ env [WP_ENV ]['domain ' ]);
61
+ define ('WP_ENV_PATH ' , trim ($ env [WP_ENV ]['path ' ], '/ ' ));
62
+ define ('WP_ENV_SSL ' , (bool ) $ env [WP_ENV ]['ssl ' ]);
69
63
}
70
- }
71
64
72
- if (empty ($ hostname )) {
73
- throw new Exception ("Cannot determine current WordPress domain " );
74
- }
65
+ } else {
75
66
76
- foreach ($ env as $ environment => $ env_vars ) {
77
- if (!isset ($ env_vars ['domain ' ])) {
78
- throw new Exception ('You must set the domain value in your environment array, see wp-config.env.php ' );
79
- }
80
- $ domain = $ env_vars ['domain ' ];
81
- if (!is_array ($ domain )) {
82
- $ domain = [$ domain ];
83
- }
84
- foreach ($ domain as $ domain_name ) {
85
- $ wildcard = (strpos ($ domain_name , '* ' ) !== false ) ? true : false ;
67
+ // Detect environment from hostname
68
+ foreach ($ env as $ environment => $ env_vars ) {
69
+ if (!isset ($ env_vars ['domain ' ])) {
70
+ throw new Exception ('You must set the domain value in your environment array, see wp-config.env.php ' );
71
+ }
72
+ $ domain = $ env_vars ['domain ' ];
73
+
74
+ $ wildcard = (strpos ($ domain , '* ' ) !== false ) ? true : false ;
86
75
if ($ wildcard ) {
87
- $ match = '/ ' . str_replace ('* ' , '([^.]+) ' , preg_quote ($ domain_name , '/ ' )) . '/ ' ;
76
+ $ match = '/ ' . str_replace ('* ' , '([^.]+) ' , preg_quote ($ domain , '/ ' )) . '/ ' ;
88
77
if (preg_match ($ match , $ hostname , $ m )) {
89
78
if (!defined ('WP_ENV ' )) {
90
79
define ('WP_ENV ' , $ environment );
91
80
}
92
- define ('WP_ENV_DOMAIN ' , str_replace ('* ' , $ m [1 ], $ domain_name ));
81
+ define ('WP_ENV_DOMAIN ' , str_replace ('* ' , $ m [1 ], $ domain ));
93
82
if (isset ($ env_vars ['ssl ' ])) {
94
- define ('WP_ENV_SSL ' , (bool ) $ env_vars ['ssl ' ]);
83
+ define ('WP_ENV_SSL ' , (bool )$ env_vars ['ssl ' ]);
95
84
}
96
85
if (isset ($ env_vars ['path ' ])) {
97
86
define ('WP_ENV_PATH ' , trim ($ env_vars ['path ' ], '/ ' ));
98
87
}
99
88
break ;
100
89
}
101
- } elseif ($ hostname === $ domain_name ) {
102
- if (!defined ('WP_ENV ' )) {
103
- define ('WP_ENV ' , $ environment );
104
- }
105
- define ('WP_ENV_DOMAIN ' , $ domain_name );
106
- if (isset ($ env_vars ['ssl ' ])) {
107
- define ('WP_ENV_SSL ' , (bool ) $ env_vars ['ssl ' ]);
108
- }
109
- if (isset ($ env_vars ['path ' ])) {
110
- define ('WP_ENV_PATH ' , trim ($ env_vars ['path ' ], '/ ' ));
90
+ }
91
+ if (!is_array ($ domain )) {
92
+ $ domain = [$ domain ];
93
+ }
94
+ foreach ($ domain as $ domain_name ) {
95
+ if ($ hostname === $ domain_name ) {
96
+ if (!defined ('WP_ENV ' )) {
97
+ define ('WP_ENV ' , $ environment );
98
+ }
99
+ define ('WP_ENV_DOMAIN ' , $ domain_name );
100
+ if (isset ($ env_vars ['ssl ' ])) {
101
+ define ('WP_ENV_SSL ' , (bool )$ env_vars ['ssl ' ]);
102
+ }
103
+ if (isset ($ env_vars ['path ' ])) {
104
+ define ('WP_ENV_PATH ' , trim ($ env_vars ['path ' ], '/ ' ));
105
+ }
106
+ break ;
111
107
}
112
- break ;
113
108
}
114
109
}
115
110
}
116
111
112
+ if (!defined ('WP_ENV ' )) {
113
+ throw new Exception ("Cannot determine current environment " );
114
+ }
115
+
117
116
/**
118
117
* Define WordPress Site URLs
119
118
*/
@@ -131,10 +130,10 @@ function s24_load_environment_config() {
131
130
$ path = (defined ('WP_ENV_PATH ' )) ? '/ ' . trim (WP_ENV_PATH , '/ ' ) : '' ;
132
131
133
132
if (!defined ('WP_SITEURL ' )) {
134
- define ('WP_SITEURL ' , $ protocol . trim ($ hostname , '/ ' ) . $ path );
133
+ define ('WP_SITEURL ' , $ protocol . trim (WP_ENV_DOMAIN , '/ ' ) . $ path );
135
134
}
136
135
if (!defined ('WP_HOME ' )) {
137
- define ('WP_HOME ' , $ protocol . trim ($ hostname , '/ ' ) . $ path );
136
+ define ('WP_HOME ' , $ protocol . trim (WP_ENV_DOMAIN , '/ ' ) . $ path );
138
137
}
139
138
140
139
// Define W3 Total Cache hostname
0 commit comments