Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana PHP Berfungsi - Di Sebalik Tabir
PHP ialah bahasa skrip sebelah pelayan yang pada mulanya dibangunkan oleh Rasmus Lerdorf pada tahun 1994 untuk mengurus tapak web peribadinya. Pada tahun 1995, PHP telah dikeluarkan kepada umum, membolehkan pembangun web mencipta kandungan dinamik dengan lebih mudah. Kod PHP berjalan di bahagian pelayan, menjadikannya ideal untuk mencipta aplikasi web yang berinteraksi dengan pangkalan data, memproses input pengguna dan menghantar halaman web dinamik.
Mari kita mulakan dengan contoh mudah:
echo "Hello world";
Jika anda menjalankan kod ini melalui terminal komputer anda, maka anda akan mendapat output "Hello world" dalam terminal anda. Kami tahu bahawa komputer kami hanya boleh memahami kod mesin seperti 0 atau 1.
Untuk memahami perkara ini, mari lihat cara komputer memahami kod. Komputer hanya memahami kod mesin, iaitu format binari (0s dan 1s). Untuk kod peringkat tinggi seperti PHP dilaksanakan, ia perlu diterjemahkan kepada kod mesin. Di sinilah penyusun dan jurubahasa berperanan.
Penyusun dan Jurubahasa ialah kedua-dua perisian terjemahan atau program yang menukar kod sumber yang ditulis dalam bahasa pengaturcaraan kepada kod mesin. Iaitu, kod yang kita tulis, yang boleh difahami oleh manusia, ditukarkan oleh penyusun atau jurubahasa ini kepada kod mesin (0s dan 1s) yang boleh difahami oleh komputer, membolehkannya melaksanakan arahan dan memberikan output kepada kita. Mari kita selidiki gambaran keseluruhan asas tentang penterjemah ini untuk memahaminya dengan lebih baik.
Jurubahasa ialah sejenis penterjemah yang membaca keseluruhan kod sumber yang ditulis dalam bahasa peringkat tinggi baris demi baris dan segera menukar setiap baris kepada kod mesin. Jika ia menghadapi ralat semasa membaca baris kod, ia berhenti serta-merta dan melaporkan ralat itu kepada pengaturcara, menjadikannya lebih mudah untuk nyahpepijat. Pelaksanaan baris demi baris ini juga menjadikannya proses yang lebih perlahan berbanding pengkompil.
Pengkompil ialah sejenis penterjemah yang menukarkan keseluruhan kod sumber yang ditulis dalam bahasa peringkat tinggi kepada kod mesin sekaligus. Jika terdapat ralat dalam kod, pengkompil masih akan menyusun keseluruhan kod, tetapi ralat akan ditangkap semasa masa jalan, menjadikannya lebih sukar bagi pengaturcara untuk mengenal pasti dan membetulkan ralat. Walau bagaimanapun, memandangkan pengkompil menukar keseluruhan kod sumber kepada kod mesin sekaligus, ia biasanya berprestasi lebih pantas daripada jurubahasa semasa pelaksanaan.
Jadi jawapannya ialah, PHP adalah bahasa yang ditafsirkan. Apabila skrip PHP dijalankan, jurubahasa PHP menghuraikan dan melaksanakan kod pada masa jalan, dan bukannya menyusunnya ke kod mesin terlebih dahulu, seperti bahasa yang disusun seperti C atau C . Walau bagaimanapun, sesetengah pengoptimuman, seperti caching bytecode dengan alatan seperti OPcache, boleh meningkatkan prestasi dengan menyimpan kod bait yang disusun untuk mengelakkan tafsiran semula kod pada setiap permintaan.
Terdapat juga projek seperti HHVM (Mesin Maya HipHop), yang dibangunkan oleh Facebook untuk melaksanakan kod PHP menggunakan proses penyusunan Just-In-Time (JIT). Ini membolehkan ia menyusun kod PHP menjadi kod bait perantaraan, kemudian menyusunnya ke kod mesin dengan cepat, menjadikan pelaksanaan PHP lebih pantas. Dengan PHP 8, kompilasi JIT disepadukan terus ke dalam PHP, membenarkan bahagian kod disusun, seterusnya mengaburkan garis antara gelagat yang ditafsir dan dikompilasi.
JIT, atau kompilasi Just-In-Time, ialah kaedah melaksanakan kod dengan menyusun bahagiannya "tepat pada masanya" untuk pelaksanaan, bukannya mendahului masa. Tidak seperti pelaksanaan tafsiran tradisional, yang membaca dan melaksanakan kod baris demi baris, kompilasi JIT menterjemah bahagian kod ke dalam kod mesin sejurus sebelum ia diperlukan semasa masa jalan. Ini menghasilkan pelaksanaan yang lebih pantas kerana kod mesin berjalan terus pada CPU, mengelakkan keperluan untuk tafsiran berulang.
Kompilasi JIT terletak di antara pelaksanaan yang ditafsirkan sepenuhnya dan tersusun sepenuhnya. Begini cara ia berfungsi secara umum:
Tafsiran Awal: Kod pada mulanya ditafsirkan atau dijalankan dengan cara yang ringan untuk menganalisis bahagian mana yang paling kerap digunakan atau intensif secara pengiraan.
Kompilasi On-the-Fly: Pengkompil JIT mengenal pasti "titik panas"—bahagian kod yang sering dijalankan atau memerlukan pengoptimuman. Ia kemudian menyusun bahagian ini ke dalam kod mesin semasa masa jalan.
Pelaksanaan: Kod mesin yang disusun disimpan, jadi pelaksanaan masa hadapan boleh menggunakan versi yang dioptimumkan tanpa menyusunnya semula, mempercepatkan prestasi.
Dalam PHP, JIT telah diperkenalkan dalam PHP 8, membenarkan fungsi atau gelung yang kerap digunakan berjalan lebih pantas dengan menyusunnya ke dalam kod mesin semasa ia dilaksanakan. Bahasa lain, seperti JavaScript (cth., enjin V8 dalam Chrome) dan Java, juga menggunakan kompilasi JIT untuk faedah prestasi yang serupa.
Dalam blok pertama, kami mempunyai kod bertulis kami. Kod ini mula-mula masuk ke dalam JIT (Pengkompil Just-In-Time). Kemudian JIT menyusun dan melaksanakan kod. Semasa pelaksanaan ini, JIT membaca kod baris demi baris dan segera menukar setiap baris kepada kod mesin selepas membacanya. Jika terdapat ralat dalam mana-mana baris semasa proses membaca, ia berhenti di situ dan membuang ralat itu.
Jadi, ini memberi kita sedikit idea tentang cara kod PHP peringkat tinggi (kod yang kita tulis) difahami dan dijalankan oleh komputer.
Skrip PHP boleh dijalankan dalam dua persekitaran utama: Antara Muka Baris Perintah (CLI) dan persekitaran pelayan web.
Antara Muka Baris Perintah (CLI): Kod PHP boleh dilaksanakan terus daripada baris arahan pada komputer anda. Ini membolehkan pembangun menjalankan skrip tanpa penyemak imbas, selalunya digunakan untuk automasi, kerja cron atau skrip ujian.
Persekitaran Pelayan Web: PHP biasanya dijalankan dalam persekitaran pelayan web, di mana kod tersebut dilaksanakan sebagai tindak balas kepada permintaan daripada pelanggan/pelayar. Apabila skrip PHP diminta, pelayan web berkomunikasi dengan enjin PHP melalui lapisan antara muka (seperti CGI, FastCGI atau FPM), yang memproses skrip dan mengembalikan output kepada klien.
Setiap persekitaran menyediakan kes penggunaan yang berbeza, membenarkan PHP menjadi bahasa yang fleksibel untuk aplikasi web dan baris arahan.
Komputer kami mengandungi pelbagai aplikasi atau program yang kami jalankan untuk tujuan yang berbeza. Walau bagaimanapun, apabila kita pergi untuk menjalankan aplikasi atau program ini, ia tidak boleh dilaksanakan sendiri. Sebaliknya, mereka berjalan melalui sistem pengendalian komputer. Apabila kita menulis kod dalam PHP, ia juga menjadi program yang boleh kita jalankan melalui terminal komputer. Jadi, apabila kami menjalankan kod kami melalui terminal, ia juga dilaksanakan melalui sistem pengendalian.
Maka, persoalannya ialah: bagaimanakah aplikasi atau program ini, atau kod yang kami tulis, berkomunikasi dengan sistem pengendalian komputer kami?
Di sini, cara yang digunakan untuk berkomunikasi dengan sistem pengendalian dipanggil OS API (Operating System’s API). Melalui API OS ini, aplikasi atau program boleh berkomunikasi dengan sistem pengendalian komputer, seperti yang ditunjukkan dalam rajah di atas. Ini memberi kami sedikit pemahaman tentang cara kod PHP berjalan melalui terminal pada komputer kami.
Pertama, daripada klien/pelayar, kami menghantar permintaan ke pelayan web. Walau bagaimanapun, pelayan web tidak boleh berkomunikasi secara langsung dengan enjin PHP. Untuk komunikasi antara pelayan web dan enjin PHP, lapisan perantaraan berfungsi di antara mereka, dikenali sebagai SAPI atau API Pelayan. Protokol yang berbeza digunakan sebagai SAPI, yang membolehkan pelayan web berkomunikasi dengan enjin PHP. Protokol ini termasuk CGI, FastCGI, mod_php, FPM, dll. Mana-mana satu daripada protokol ini boleh digunakan untuk komunikasi antara pelayan web dan enjin PHP.
Dua pelayan web yang paling popular untuk menjalankan skrip PHP ialah Apache dan Nginx:
Ini memberi kita pemahaman yang lebih baik tentang cara kod PHP berjalan pada pelayan web. Berdasarkan perkara di atas.
Saya harap mendapat idea asas tentang cara kod PHP sebenarnya berfungsi di sebalik tabir. Jika ia bermanfaat, jangan lupa kongsikan dengan orang lain.
Atas ialah kandungan terperinci Bagaimana PHP Berfungsi - Di Sebalik Tabir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!