Отключение debug_kit в действии контроллера, Cakephp - PullRequest
5 голосов
/ 06 января 2010

В настоящее время я работаю над функцией экспорта в приложении cakephp, и я делаю запрос, который получает около 10000 строк для каждого экспорта, который может обработать торт, но кажется, что debug_kit использует много памяти и использует более 128 МБ памяти. 1001 *

Я пытался написать это в верхней части функции, но debugkit все еще подключается и использует большие объемы памяти.

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

Ответы [ 6 ]

9 голосов
/ 12 января 2012

Только для улучшения Ответ Бенджамина Пирсона . Выгрузите компонент вместо выключения отладки.

public function beforeFilter() {
    parent::beforeFilter();

    if(in_array($this->action, array('export'))) {
        $this->Components->unload('DebugKit.Toolbar');
    }
}
9 голосов
/ 06 января 2010

HyperCas правильно, предлагая обратный вызов beforeFilter () в качестве подходящего решения.

Код может выглядеть примерно так в контроллере, где находится действие (т. Е. Экспорт):

function beforeFilter() {
    // filter actions which should not output debug messages
    if(in_array($this->action, array('export'))) {
        Configure::write('debug', 0);
    }
}

Вы должны настроить array('export'), чтобы включить все действия, которые вы хотите предотвратить отладку.

0 голосов
/ 29 марта 2016

Отключить debug_kit на лету

class AppController extends Controller {
     public function beforeFilter() {
         Configure::write('debug', 0);
     }
}
0 голосов
/ 07 мая 2015

в cakephp3 open bootstrap.php файл в папке config комментируйте или удаляйте DebugKit loading

if (Configure::read('debug')) {
   // Plugin::load('DebugKit', ['bootstrap' => true]);
}

вот и все .. он выгрузит DebugKit из вашего приложения

0 голосов
/ 08 января 2010

вы также можете переключить уровень отладки в config.php на 0. Это автоматически отключит набор отладки + ваше приложение будет использовать еще меньше памяти.

0 голосов
/ 06 января 2010

Использование

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

в /app/config/core.php

Или используйте его в обратном вызове beforeFilter () на контроллере. Это остановит отладку для всего контроллера, если вы не проверите вручную текущее действие (в $ this-> params ['action'] ).

Если ваша модель имеет несколько ассоциаций, вам следует взглянуть на поведение

http://book.cakephp.org/view/51/Controller-Attributes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...