extension; } /** * 확장자 없는 형태 라우트를 반환합니다. * * @return Route 확장자 없는 형태 라우트 인스턴스 */ public function extensionlessRoute(): Route { return $this->extensionless; } /** * 두 라우트에 이름을 부여합니다. * * 확장자 형태는 전달된 이름을 그대로, 확장자 없는 형태는 * `.extensionless` 접미사를 붙여 등록합니다. * * @param string $name 라우트 이름 * @return self 체이닝을 위한 자기 자신 */ public function name(string $name): self { $this->extension->name($name); $this->extensionless->name($name.self::EXTENSIONLESS_NAME_SUFFIX); return $this; } /** * 그 외 모든 호출을 두 라우트에 동일하게 전달합니다. * * @param string $method 호출된 메서드명 * @param array $arguments 전달 인자 * @return self 체이닝을 위한 자기 자신 */ public function __call(string $method, array $arguments): self { $this->extension->{$method}(...$arguments); $this->extensionless->{$method}(...$arguments); return $this; } }