2012-02-27 1 views
8

cakephp의 특정 컨트롤러에 대한 디버그 모드를 켜기를 원합니다. 이제 config/core.php에서이 작업을 수행하고 있습니다. 하지만 컨트롤러에서 활성화/비활성화하는 것은 쉽습니다. 실제 사이트에서 작업 할 때 문제가 발생하지 않도록 할 수 있습니다. 그렇지 않으면 로그가 엉망이됩니다.cakephp의 특정 컨트롤러에 대한 디버그 모드 켜기/끄기

답변

15

실제로 보안상의 핵심 요소는 core.php와 비슷합니다. 모든 사용자 프론트 엔드 사이트에 대해 항상 0이되도록하십시오.

일부 관리자 백엔드 작업을 위해 그것을 사용하려면, 당신은에서 작업 내에서 매우 나는이 일에 파티에 늦었

Configure::write('debug', 2); 
+0

어쨌든 감사 –

3

으로하지만 경우를 누군가에 시작하는 것을 할 수있다 다른 내가 오프 사이트 작동이

$skdebug = 0; 
if ($_SERVER["REMOTE_ADDR"]== '121.75.33.244') $skdebug = 2; 
Configure::write('debug', $skdebug); 

그래서 나는 IP의 유일한 사용자 해요 필요 고통이 라우터가 반송하기로 결정 때 IP를 계속 업데이트해야 할 수 있지만 지불 할 작은 가격입니다 수 있습니다.

모든 컨트롤러에 대해 디버그가 설정되어 있음을 의미하지만 문제는 아닙니다.

+0

을 표시이 정말 관련되지 않습니다 :

use Cake\Core\Configure; 

이 그런 다음 beforeFilter() 코드는 다음과 같은 것을해야한다 원래의 질문과 비슷하지만, IP 주소를 기반으로 디버그를 켜거나 끌 때 유용합니다. Thansk @SarahKing 대단한 팁 – Joel

0

나를 위해 cakephp 3.4에서 작동합니다.

사용 CakePHP의에서 컨트롤러 3+의 상단에 아래 코드 :

public function beforeFilter(\Cake\Event\Event $event){ 
    parent::beforeFilter($event); 
    $this->loadComponent('RequestHandler'); 

    // allow the function to public access 
    $this->Auth->allow(['index','logout','register','saveOrders']); 

    $actions = [ 
     'saveOrders','save-orders', 
    ]; 

    // change the debug mode for a particular action 
    if (in_array($this->request->params['action'], $actions)) { 
     Configure::write('debug', false); // off debug mode 
    } 
}