Penggunaan fungsi EXEPTIONS pada PHP

Apakah mungkin menulis string atau masuk ke konsol?

Apa yang saya maksud

Sama seperti di JSP, jika kita mencetak sesuatu seperti system.out.println["some"], itu akan ada di konsol, bukan di halaman.

Jawaban:

Firefox

Di Firefox Anda dapat menggunakan ekstensi bernama FirePHP yang memungkinkan proses logging dan dumping informasi dari aplikasi PHP Anda ke konsol. Ini adalah tambahan untuk ekstensi pengembangan web Firebug yang luar biasa .

  • //www.studytrails.com/blog/using-firephp-in-firefox-to-debug-php/

Chrome

Namun jika Anda menggunakan Chrome, ada alat debugging PHP yang disebut Chrome Logger atau webug [webug memiliki masalah dengan urutan log].

Baru-baru ini Clockwork sedang dalam pengembangan aktif yang memperluas Alat Pengembang dengan menambahkan panel baru untuk memberikan informasi debug dan profil yang berguna. Ini memberikan keluar dari kotak dukungan untuk LARAVEL 4 dan Slim 2 dan dukungan dapat ditambahkan melalui API extensible nya.

Menggunakan Xdebug

Cara yang lebih baik untuk men-debug PHP Anda adalah melalui Xdebug . Sebagian besar browser menyediakan ekstensi pembantu untuk membantu Anda melewatkan string cookie / kueri yang diperlukan untuk menginisialisasi proses debugging.

  • Chrome - Xdebug Helper
  • Firefox - Xdebug termudah
  • Opera - Xdebug
  • Safari - Xdebug Toggler

Atau Anda menggunakan trik dari PHP Debug ke konsol .

Pertama, Anda perlu sedikit fungsi bantuan PHP

function debug_to_console[$data] {
    $output = $data;
    if [is_array[$output]]
        $output = implode[',', $output];

    echo "console.log['Debug Objects: " . $output . "' ];";
}

Maka Anda dapat menggunakannya seperti ini:

debug_to_console["Test"];

Ini akan membuat output seperti ini:

Debug Objects: Test

Jika Anda mencari pendekatan sederhana, gema sebagai JSON:


    console.log[];

Secara default, semua output menuju stdout, yang merupakan respons HTTP atau konsol, tergantung pada apakah skrip Anda dijalankan oleh Apache atau secara manual pada baris perintah. Tetapi Anda dapat menggunakannya error_loguntuk mencatat dan berbagai aliran I / O dapat digunakan untuk menulis fwrite.

Coba yang berikut ini. Ini bekerja:

echo["console.log['PHP: " . $data . "'];"];

echo 
"
console.log['console log message'];
"
;

Menciptakan a

dengan

display="none"

sehingga div tidak ditampilkan, tetapi

console.log[]

fungsi dibuat dalam javascript. Jadi, Anda mendapatkan pesan di konsol.

Sebagai penulis laman web tertaut dalam jawaban populer , saya ingin menambahkan versi terakhir dari fungsi pembantu sederhana ini. Itu jauh lebih solid.

Saya gunakan json_encode[]untuk melakukan pengecekan jika tipe variabel tidak diperlukan dan juga menambahkan buffer untuk menyelesaikan masalah dengan framework. Tidak ada pengembalian yang solid atau penggunaan berlebihan header[].

/**
 * Simple helper to debug to the console
 *
 * @param $data object, array, string $data
 * @param $context string  Optional a description.
 *
 * @return string
 */
function debug_to_console[$data, $context = 'Debug in Console'] {

    // Buffering to solve problems frameworks, like header[] in this and not a solid return.
    ob_start[];

    $output  = 'console.info[\'' . $context . ':\'];';
    $output .= 'console.log[' . json_encode[$data] . '];';
    $output  = sprintf['%s', $output];

    echo $output;
}

Pemakaian

// $data is the example variable, object; here an array.
$data = [ 'foo' => 'bar' ];
debug_to_console[$data];`

Tangkapan layar hasilnya

Juga contoh sederhana sebagai gambar untuk memahaminya lebih mudah:

Saya pikir itu bisa digunakan -

function jsLogs[$data] {
    $html = "";
    $coll;

    if [is_array[$data] || is_object[$data]] {
        $coll = json_encode[$data];
    } else {
        $coll = $data;
    }

    $html = "console.log['PHP: ${coll}'];";

    echo[$html];
    # exit[];
}

# For String
jsLogs["testing string"]; #PHP: testing string

# For Array
jsLogs[array["test1", "test2"]]; # PHP: ["test1","test2"]

# For Object
jsLogs[array["test1"=>array["subtest1", "subtest2"]]]; #PHP: {"test1":["subtest1","subtest2"]}

Beberapa jawaban bagus yang menambah kedalaman; tetapi saya membutuhkan sesuatu yang lebih sederhana dan lebih mirip dengan console.log[]perintah JavaScript .

Saya menggunakan PHP di banyak "pengumpulan data dan berubah menjadi XML" di aplikasi Ajax. JavaScript console.logtidak berfungsi dalam hal ini; itu merusak output XML.

Xdebug, dll. Memiliki masalah serupa.

Solusi saya di Windows:

  • Setup .txtfile yang agak mudah untuk diakses dan ditulis
  • Atur error_logvariabel PHP di.ini file untuk menulis ke file itu
  • Buka file di Windows File Explorer dan buka panel pratinjau untuk itu
  • Gunakan error_log['myTest'];perintah PHP untuk mengirim pesan

Solusi ini sederhana dan memenuhi sebagian besar kebutuhan saya. PHP standar, dan panel pratinjau secara otomatis memperbarui setiap kali PHP menulisnya.

$variable = "Variable";
echo "console.log['$variable'];";

Interaksi PHP dan JavaScript.

Saya menemukan ini bermanfaat:

function console[$data, $priority, $debug]
{
    if [$priority 

Output mana di konsol:

Important
 Less Important
     Even Less Important
Again Important

Dan Anda dapat mematikan log yang kurang penting dengan membatasi mereka menggunakan nilai $ debug.

Singkat dan mudah, untuk array, string atau juga objek.

function console_log[ $data ] {
  $output  = "console.log[ 'PHP debugger: ";
  $output .= json_encode[print_r[$data, true]];
  $output .= "' ];";
  echo $output;
}

function phpconsole[$label='var', $x] {
    ?>
    
        console.log[''];
        console.log[''];
    
    

Bài mới nhất

Chủ Đề