Bu PHP değerleri günlüğüne yazılan ifadeler nelerdir oluşturulan değil mi?

1 Cevap php

Her sayfa yük ile çalışan bu kodu vardır:

$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);

Ben günlük dosyasını görüntülemek Fakat, ben bunu görmek:

Array
(
)

Total Doctrine Time: 0
Peak Memory: 4006524

Ben yankı Ama eğer $output Ben beklenen almak:

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

Ben bu konularda sanmıyorum, ama ben CodeIgniter ile Doctrine kullanıyorum.

EDIT: Ben kodunu değiştirerek dışarı, mAmp kullanarak çalışmak için bu aldık, bu yüzden muhtemelen bir php.ini şey olabilir mi?

EDIT2: Biraz daha bu içine kazma sonra, nedense, benim Media Temple, sunucu üzerinde, her şeyi iki kez çalıştırmak oluyor görünür. On-her-pageload, iki kez yazılı tüm log (ci günlüğü) olsun. Hiçbir sorgu yürütüldüğünde Yani, doktrin günlük yazılır üzerinde oluyor. Bu Yerel MediaTemple değil olur, bu yüzden ben biraz daha derin dalış gerekir neden hala emin değilim.

EDIT3: artık bir PHP mesele gibi bu kapalı olabilir. Devre dışı bırakılması JavaScript sorunu çözüldü, ben yanlış yerde arıyorum. Büyük yardım için herkese teşekkürler!

1 Cevap

En nedense iki kez aynı istek / süreç içinde veya eğer denilen kod olsun iki (değil-so-) ayrı istekleri ele olup olmadığını öğrenelim.

$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() . "\n";
function dbgFoo() {
  static $a = 0;
  return ++$a;
}
$output .= 'debug counter: ' . dbgFoo() . "\n";
// edit: forgot the $return parameter for print_r
$output .= 'POST=' . print_r($_POST, 1);
$output .= 'GET=' . print_r($_GET, 1);
$output .= 'callstack: ' . print_r(debug_backtrace(), 1) . "\n\n\n";

file_put_contents(BASEPATH."/logs/doctrine_profiler.php", $output, FILE_APPEND);

If your code is called twice within the same php instance/request the debug counter output should be >1. And maybe the call stack can help you find the point where the application chooses to call your code ...again.
Otherwise the output of _POST and _GET might indicate why there are two http requests. Maybe you have an add-on in your browser that causes a second request? There was e.g. an issue with ajax requests and older firebug versions.