У меня есть этот код, который запускается при каждой загрузке страницы:
$output = "<"."?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); ?".">\n\n";
$output .= print_r($events, 1);
$output .= "\nTotal Doctrine time: " . $time . "\n";
$output .= "Peak Memory: " . memory_get_peak_usage() . "";
file_put_contents(BASEPATH."/logs/doctrine_profiler.php", $output);
Но когда я просматриваю файл журнала, я вижу это:
Array
(
)
Total Doctrine Time: 0
Peak Memory: 4006524
Но если я повторю $output
, я получу ожидаемое:
Array
(
[0] => Array
(
[type] => execute
[query] => SELECT t.id AS t__id, t.name AS t__name, t.annual_fee AS t__annual_fee, t.monthly_fee AS t__monthly_fee, t.additional_store_fee AS t__additional_store_fee FROM tier t WHERE (t.id = ?) LIMIT 1
[time] => 0.000474
[params] => Array
(
[0] => 3
)
)
)
Total Doctrine time: 0.005281925201416
Peak Memory: 6135048
Не думаю, что это имеет значение, но я использую Doctrine с CodeIgniter.
РЕДАКТИРОВАТЬ: Я получил это работать с использованием MAMP, без изменения кода, так что это может быть php.ini?
РЕДАКТИРОВАТЬ2: После более глубокого изучения этого вопроса, по какой-то причине на моем сервере Media Temple все запускается дважды. При загрузке каждой страницы я получаю весь журнал (ci log), записанный дважды. Таким образом, журнал доктрин перезаписывается, когда ни один запрос не выполняется. Я до сих пор не уверен, почему это происходит на MediaTemple, а не локально, поэтому я углублюсь немного глубже.
EDIT3: это можно закрыть, так как это больше не проблема PHP. Отключение JavaScript решило проблему, поэтому я смотрю не в том месте. Спасибо всем за вашу большую помощь!