2014-09-25 4 views
0

В моей routes.php у меня есть отладочный фильтр как так:статическая переменная для подсчета запросов в Laravel

Route::filter('debug', function() { 
    if(App::environment() !== 'dev') { return; } 

    error_log("\n\n\n\n REQUEST NO. " . $staticRequestCount++ . "\n\n"); 

    // log the request headers 
    // log the request body 

Я нуб в обоих PHP и Laravel. Возможно ли создать статический requestCount varaible, как указано выше, которые постоянно увеличивают время до перезапуска сервера (или аналогичного)?

ответ

1

В php его невозможно обменять переменную на разные запросы без использования внешней поддержки хранилища. Каждый запрос будет отдельным процессом или потоком в соответствии с реализацией работника apache. Таким образом, код не сможет совместно использовать общую переменную в памяти, чтобы служить счетчиком.

Вы можете сделать это, записав значения счетчика в кэш. Выезд APC или memcached.

0

Я не думаю, что это возможно. Вы не можете определить, был ли перезагружен сервер с помощью PHP. Но вы можете просто сохранить такой счетчик в файл и прочитать его из файла при каждом запуске фильтра, увеличить его и сохранить измененное значение, но, конечно, он не будет автоматически удален (или установлен на 0), если сервер будет перезапущен.

Смежные вопросы