URL을 가져 와서 요청 된 구성 요소, 동작 및 모든 값을 찾기 위해 폭발하는 라우터라는 PHP 클래스가 있습니다. 그런 다음 책임 클래스를로드하고 작업 등을 실행합니다. 이제 사용자 클래스를 통해 클래스에 사용자 액세스를 통합합니다.변수를 통한 클래스 정적 함수 액세스
각 구성 요소 (클래스)에 대해 각 동작을 인덱스로 유지하고 동작을 실행하는 데 필요한 최소 권한으로 숫자를 나타내는 'perms'라는 정적 클래스 배열 변수가 있습니다. 각 구성 요소에는 전달 된 액션 이름에 대한 권한 값을 가져 오는 정적 함수도 있습니다.
내가 겪고있는 문제는 변수에 저장된 클래스의 이름으로 올바르게 작동하는 정적 함수를 얻는 것입니다. 라우터에서는 구성 요소의 이름을 저장하는 변수를 사용합니다.
$this->controller // cms, calendar ,etc
내가 정적 기능
을 액세스하는 데 사용하려고 할 때 그때, 나는 오류를 얻고있다$class = $this->controller.'Controller'; // cmsController, calendarController, etc
그러나 클래스의 이름을 얻기 위해 그것을 '컨트롤러'추가
$minActionPerm = $class::getPerms($this->action); // No go, parse error
글자 그대로 클래스 이름을 입력 할 때 오류가 발생하지 않지만 이는 실제 해결책이 아닙니다.
$minActionPerm = cmsController::getPerms($this->action); // Good, but literal
변수는 동작을 실행할 클래스 개체를 만들 때도 작동합니다.
$object = new $class();
아마도 변수 사용과 같은 단순한 답변 일 것이라고 확신하지만, 지금 당장은 모르겠습니다.