Я в настоящее время работаю над функцией экспорта в cakephp приложении, и я делаю запрос, который обходит 10 000 строк каждый экспорт, который может обработать пирог, но debug_kit, кажется, использует партию памяти и помещает меня более чем 128 МБ используемой памяти.
Я попробовал попробованную запись этого в вершине функции, но debugkit все еще становится включенным и использует большие объемы памяти.
Configure::write('debug',0);
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')
, чтобы включить все действия, которые вы хотите предотвратить отладку.
Используйте
Configure::write('debug',0);
в /app/config/core.php
или используйте его в обратном вызове функции beforeFilter() на контроллере. Это остановит отладку для всего контроллера, если вы не проверите вручную текущий экшен (в $this->params['action']).
Если ваша модель имеет несколько ассоциаций, то вы должны обратить внимание на containable behavior
вы также можете переключить уровень отладки в конфигурационном файле config.php на 0. это отключит автоматический набор отладки + ваше приложение будет использовать ещё меньше памяти.