protected function setProjectRoot($root) { if (!is_dir($root)) { throw new \InvalidArgumentException("Invalid project root: {$root}"); } self::$projectRoot = $root; }