Выключая debug_kit в рамках действия контроллера, Cakephp

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

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

Configure::write('debug',0);
5
задан skaffman 15 May 2010 в 09:22
поделиться

3 ответа

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'), чтобы включить все действия, которые вы хотите предотвратить отладку.

9
ответ дан 18 December 2019 в 09:07
поделиться

Используйте

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

в /app/config/core.php

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

Если ваша модель имеет несколько ассоциаций, то вы должны обратить внимание на containable behavior

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

0
ответ дан 18 December 2019 в 09:07
поделиться

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

0
ответ дан 18 December 2019 в 09:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: