관리자 접두사 실행하려면 (I는 파일의 끝 부분이로드) 앱의 라우팅 구성이 아직로드되지 않았습니다.
오래된 학교 스타일을 사용하고 $_SERVER['REQUEST_URI']
을 사용해야합니다.
$url = $_SERVER['REQUEST_URI'];
$admin = '/admin/';
if(substr($url, 0, strlen($admin)) === $admin) {
Plugin::load('Josegonzalez/Upload');
\Cake\Event\EventManager::instance()->on(new \App\Controller\Event\AppEventListener());
}
업데이트
귀하의 플러그인은 그 자체 부트 스트랩 파일이 있어야합니다. 어떤
업로드/설정/bootstrap.php 포함 플러그인을로드 할 때
\Cake\Event\EventManager::instance()->on(new \App\Controller\Event\AppEventListener());
응용의 부트 스트랩은 다음 CakePHP의 부트 스트랩을 포함하도록 지시합니다.
앱/설정/bootstrap.php :
Plugin::load('Josegonzalez/Upload', ['bootstrap' => true]);
당신은 조건부 플러그인을로드하지 않아야합니다.
나는 플러그인 요청에 대한 인증을 찾고 있다고 생각합니다. 플러그인의 사용을 허가 된 관리자에게만 제한하려고합니다. 그건 플러그인 문제가 아닙니다. 이는 인증 문제이며 플러그인의 인증 구성 요소를 사용하여 요청이 유효한지, 그리고 현재 사용자가 관리자인지 확인해야합니다.
감사, 이벤트 리스너를 들어
을 플러그인 부트 스트랩 구성 내부를로드 할 수 있습니다. 거기에 내가 어디 에서이 이벤트 수신기 (이 할 수있는 cakephp의 도구를 사용할 수 있습니다? 그것은 $ _SERVER (이 이벤트는 "Model.initialize"btw를 사용하여)를 사용하는 나쁜 관행을 느낀다 – hamidreza
아니요. 이 플러그인에 대한 인증이 필요합니다. 내 응용 프로그램은 2 부분으로 구성되어 있습니다. 첫 번째는 admin 웹 패널이고 두 번째는 일반 사용자를위한 웹 사이트입니다. 관리자 패널에서 사진을 업로드해야하지만 사이트 홈 페이지 (플러그인 업로드)가 필요하지 않습니다. 내가 관리 접두사에 대한이 플러그인을로드하고 싶습니다. 그리고 eventListener (내 사용자 정의 타임 스탬프와 같은 .....) 관리 패널에 대한로드하는 데 필요한 행동을 처리하고 있습니다. 그것은 정말 관리에 대한 액세스 아니에요 모델은 관리자 접두사 인 경우에만 (내 모델은 관리자 및 기본 사이트에 동일하므로) – hamidreza