PluginProbe
WP Debugging / 2.7.2
WP Debugging v2.7.2
2.12.6 2.12.5 trunk 2.10.0 2.10.1 2.10.2 2.11.0 2.11.1 2.11.10 2.11.11 2.11.12 2.11.13 2.11.14 2.11.15 2.11.16 2.11.17 2.11.18 2.11.19 2.11.2 2.11.20 2.11.21 2.11.22 2.11.23 2.11.24 2.11.3 All 59 releases
← All changes | src/Bootstrap.php +12 -15 2.11.232.7.2 View file →
@@ -8,13 +8,8 @@
8 8 */
9 9
10 10 namespace Fragen\WP_Debugging;
11 11
12 -// Exit if called directly.
13 -if ( ! defined( 'WPINC' ) ) {
14 - die;
15 -}
16 -
17 12 /**
18 13 * Class Bootstrap
19 14 */
20 15 class Bootstrap {
@@ -63,9 +58,9 @@
63 58 $this->file = $file;
64 59 $this->dir = dirname( $file );
65 60 self::$options = get_site_option( 'wp_debugging', [ 'wp_debug' => '1' ] );
66 61 self::$config_path = $this->get_config_path();
67 - @ini_set( 'display_errors', 1 ); // phpcs:ignore WordPress.PHP.IniSet.display_errors_Blacklisted,WordPress.PHP.NoSilencedErrors.Discouraged,WordPress.PHP.IniSet.display_errors_Disallowed
62 + @ini_set( 'display_errors', 1 ); // phpcs:ignore WordPress.PHP.IniSet.display_errors_Blacklisted
68 63 }
69 64
70 65 /**
71 66 * Test for writable wp-config.php, exit with notice if not available.
@@ -79,16 +74,14 @@
79 74 echo '</p></div>';
80 75
81 76 return false;
82 77 }
78 + if ( ! \file_exists( self::$config_path ) || ! trim( \file_get_contents( self::$config_path ) ) ) {
79 + return;
80 + }
83 81
84 82 $this->load_hooks();
85 - add_action(
86 - 'plugins_loaded',
87 - function () {
88 - \WP_Dependency_Installer::instance()->run( $this->dir );
89 - }
90 - );
83 + \WP_Dependency_Installer::instance()->run( $this->dir );
91 84 }
92 85
93 86 /**
94 87 * Get the `wp-config.php` file path.
@@ -102,9 +95,8 @@
102 95 public function get_config_path() {
103 96 $config_path = ABSPATH . 'wp-config.php';
104 97
105 98 if ( ! file_exists( $config_path ) ) {
106 - // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
107 99 if ( @file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) ) {
108 100 $config_path = dirname( ABSPATH ) . '/wp-config.php';
109 101 }
110 102 }
@@ -125,10 +117,10 @@
125 117 * @return void
126 118 */
127 119 public function load_hooks() {
128 120 add_action(
129 - 'plugins_loaded',
130 - function () {
121 + 'init',
122 + function() {
131 123 ( new Settings( self::$options, self::$config_path, $this->defined_constants ) )
132 124 ->load_hooks()
133 125 ->process_filter_constants();
134 126 }
@@ -197,13 +189,18 @@
197 189 *
198 190 * @return void
199 191 */
200 192 private function set_pre_activation_constants() {
193 + if ( ! \file_exists( self::$config_path ) || ! trim( \file_get_contents( self::$config_path ) ) ) {
194 + return;
195 + }
201 196 $config_transformer = new \WPConfigTransformer( self::$config_path );
202 197 $predefined_constants = [];
203 198 foreach ( $this->defined_constants as $defined_constant ) {
204 199 if ( $config_transformer->exists( 'constant', strtoupper( $defined_constant ) ) ) {
205 200 $value = $config_transformer->get_value( 'constant', strtoupper( $defined_constant ) );
201 + $value = trim( $value, '"\'' ); // Normalize quoted value.
202 +
206 203 $predefined_constants[ $defined_constant ]['value'] = $value;
207 204 }
208 205 }
209 206 update_site_option( 'wp_debugging_restore', $predefined_constants );