Beschreibe den Fehler
Während des Aktualisierungsprozesses erschienen 2 PHP-Hinweise in den Protokollen:
[17-Mar-2020 13:37:45 UTC] PHP Notice: Undefined variable: home_root_escaped in /****/wp-content/plugins/wp-rocket/inc/functions/options.php on line 252
[17-Mar-2020 13:37:45 UTC] PHP Stack trace:
[17-Mar-2020 13:37:45 UTC] PHP 1. {main}() /****/wp-admin/admin-ajax.php:0
[17-Mar-2020 13:37:45 UTC] PHP 2. do_action() /****/wp-admin/admin-ajax.php:45
[17-Mar-2020 13:37:45 UTC] PHP 3. WP_Hook->do_action() /****/wp-includes/plugin.php:478
[17-Mar-2020 13:37:45 UTC] PHP 4. WP_Hook->apply_filters() /****/wp-includes/class-wp-hook.php:312
[17-Mar-2020 13:37:45 UTC] PHP 5. rocket_upgrader() /****/wp-includes/class-wp-hook.php:288
[17-Mar-2020 13:37:45 UTC] PHP 6. flush_rocket_htaccess() /****/wp-content/plugins/wp-rocket/inc/admin/upgrader.php:27
[17-Mar-2020 13:37:45 UTC] PHP 7. get_rocket_htaccess_marker() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:56
[17-Mar-2020 13:37:45 UTC] PHP 8. get_rocket_htaccess_mod_rewrite() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:148
[17-Mar-2020 13:37:45 UTC] PHP 9. get_rocket_cache_reject_uri() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:271
[17-Mar-2020 13:37:45 UTC] PHP Notice: Undefined variable: home_root_len in /****/wp-content/plugins/wp-rocket/inc/functions/options.php on line 254
[17-Mar-2020 13:37:45 UTC] PHP Stack trace:
[17-Mar-2020 13:37:45 UTC] PHP 1. {main}() /****/wp-admin/admin-ajax.php:0
[17-Mar-2020 13:37:45 UTC] PHP 2. do_action() /****/wp-admin/admin-ajax.php:45
[17-Mar-2020 13:37:45 UTC] PHP 3. WP_Hook->do_action() /****/wp-includes/plugin.php:478
[17-Mar-2020 13:37:45 UTC] PHP 4. WP_Hook->apply_filters() /****/wp-includes/class-wp-hook.php:312
[17-Mar-2020 13:37:45 UTC] PHP 5. rocket_upgrader() /****/wp-includes/class-wp-hook.php:288
[17-Mar-2020 13:37:45 UTC] PHP 6. flush_rocket_htaccess() /****/wp-content/plugins/wp-rocket/inc/admin/upgrader.php:27
[17-Mar-2020 13:37:45 UTC] PHP 7. get_rocket_htaccess_marker() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:56
[17-Mar-2020 13:37:45 UTC] PHP 8. get_rocket_htaccess_mod_rewrite() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:148
[17-Mar-2020 13:37:45 UTC] PHP 9. get_rocket_cache_reject_uri() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:271
Fortpflanzen
Erwartetes Verhalten
Keine neuen Zeilen in der Protokolldatei.
Zusätzlicher Kontext
Rückstandspflege
Identifiziere die Ursache ✅
inc/functions/options.php
- get_rocket_cache_reject_uri()
Funktion
Die Ursache ist die Erklärung von
$home_root_escaped = preg_quote( $home_root, '/' );
$home_root_len = strlen( $home_root );
was in einer if-Bedingung geschieht:
if ( '' !== $home_root && $uris ) {
Diese Variablen werden im Folgenden verwendet und sind anscheinend nicht definiert:
https://github.com/wp-media/wp-rocket/blob/8b2a567efcab3925dba6fff72c5a622ec2d16386/inc/functions/options.php#L198 -L199
Scope eine Lösung ✅
Die Lösung besteht darin, die Deklaration dieser 2 Variablen in diese Funktion global zu verschieben.
Schätze den Aufwand
Bemühungen]
Der Aufwand wird in die Unit & Integration Tests gehen.
Mir ist gerade das Problem auf mega/Divi
aufgefallen und ich kann es replizieren, indem ich das Vorladen aktiviere.
@GeekPress @hellofromtonya Sollen wir die Priorität dieses Problems erhöhen? Es ist trivial, aber da wir davon wissen und es leicht zu beheben ist, sollten wir dies meiner Meinung nach nicht in unserem Code belassen.
@arunbasillal Die Priorität wird abhängig von der Kritikalität des Problems festgelegt. Dieser ist nicht kritisch und wird „niedrig“ sein, weil:
Zugehöriges Ticket: https://secure.helpscout.net/conversation/1171062698/166759?folderId=273764#thread -3340520759
Zugehöriges Ticket:
https://secure.helpscout.net/conversation/1238067915/183094/
Dieser Fehler wird beim Aktivieren unseres Plugins protokolliert:
[01-Aug-2020 11:54:49 UTC] PHP Notice Undefined variable: home_root_len in /var/www/vhosts/managed.hosting.com/managed.hosting.com/site/wp-content/plugins/wp-rocket/inc/functions/options.php on line 261