feat(wpmc S2): make Plugin::boot() idempotent

Add private \$booted flag; guard skips all re-registration on subsequent
calls. TDD: RED (3x boot -> expectAdded->once() fails) then GREEN.
Drop deprecated setAccessible() call (no-op since PHP 8.1).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Vladimir Bryzgalov
2026-05-12 18:01:43 +05:00
parent bc16851b71
commit 38bb7dae55
2 changed files with 40 additions and 0 deletions
+6
View File
@@ -6,6 +6,7 @@ namespace WPMultiCity;
final class Plugin
{
private static ?Plugin $instance = null;
private bool $booted = false;
public static function instance(): Plugin
{
@@ -36,6 +37,11 @@ final class Plugin
public function boot(): void
{
if ($this->booted) {
return;
}
$this->booted = true;
if (!$this->dependencies_satisfied()) {
add_action('admin_notices', [$this, 'render_dependency_notice']);
return;