Laravel ialah salah satu rangka kerja PHP yang paling popular, menjadikan pembangunan web cekap dan menyeronokkan. Sebagai pembangun, anda mungkin telah menggunakan perintah php artisan serve untuk memulakan pelayan pembangunan setempat dengan cepat. Tetapi pernahkah anda terfikir apa yang berlaku di sebalik tabir apabila anda menjalankan arahan ini? Mari kita terokai perkara ini secara terperinci, langkah demi langkah, fahami cara Laravel mengenal pasti dan menjalankan ServeCommand, serta menyelami apakah pelayan terbina dalam PHP dan bagaimana ia dibandingkan dengan pelayan web tradisional seperti Nginx atau Apache.
Apakah php artisan serve?
Perintah php artisan serve ialah ciri Laravel yang memulakan pelayan web tempatan untuk projek anda. Ia menggunakan pelayan terbina dalam PHP untuk menjadikan aplikasi Laravel anda boleh diakses pada alamat tertentu (cth., http://127.0.0.1:8000) semasa pembangunan.
Arahan ini amat berguna untuk pembangunan tempatan kerana ia tidak memerlukan penyediaan pelayan web lengkap seperti Nginx atau Apache.
Proses Langkah demi Langkah: Apa yang Berlaku Apabila Anda Menjalankan php artisan serve?
1. Pengguna Menjalankan Perintah
Apabila anda menaip php artisan serve dalam terminal, Laravel's Artisan Console alat baris arahan untuk Laravel, mula bertindak. Ia seperti kotak alat dengan pelbagai arahan untuk membantu membina, menguji dan menjalankan aplikasi Laravel.
2. Titik Kemasukan Artisan
- Fail artisan dalam direktori akar projek anda bertindak sebagai titik masuk untuk semua arahan Artisan.
- Apabila anda menjalankan php artisan serve, fail artisan melakukan perkara berikut:
- Termasuk autoloader Komposer (vendor/autoload.php).
- Bootstraps rangka kerja Laravel menggunakan bootstrap/app.php.
3. Artisan Mencari ServeCommand
- Laravel mendaftarkan semua arahan Artisan apabila aplikasi but. Untuk arahan terbina dalam seperti servis, Laravel mendaftarkannya dalam IlluminateFoundationProvidersArtisanServiceProvider.
- Pembekal ini memetakan nama perintah (serve) ke kelasnya yang sepadan (IlluminateFoundationConsoleServeCommand).
4. Resolusi Perintah dan Autoloading
- Perintah Serve terletak dalam direktori vendor/laravel/rangka kerja di bawah ruang nama IlluminateFoundationConsole.
- Laravel menggunakan konfigurasi pemuatan auto PSR-4 Komposer untuk mencari dan memuatkan kelas.
- Ini membolehkan kelas ServeCommand dimuatkan tanpa rangka kerja Laravel penuh dimulakan sepenuhnya.
5. Menyediakan Pelayan
- ServeCommand mengkonfigurasi pelayan terbina dalam PHP:
- Hos: Lalai ialah 127.0.0.1 (hos tempatan).
- Port: Lalai ialah 8000 (atau yang tersuai melalui pilihan --port).
- Document Root: Menuding ke direktori awam di mana fail masukan Laravel (index.php) berada.
- Secara dalaman, arahan melaksanakan:
php -S 127.0.0.1:8000 -t public server.php
Salin selepas log masuk
-
php -S Memulakan pelayan terbina dalam PHP.
-
-t public Menentukan akar dokumen.
-
server.php: Fail penghala untuk mengendalikan permintaan dinamik.
6. Mengendalikan Permintaan
- Fail server.php bertindak sebagai penghala:
- Jika fail yang diminta (cth., CSS, JS) wujud, ia dihidangkan terus.
- Jika tidak, permintaan dimajukan ke index.php.
7. Laravel Memproses Permintaan
- Fail index.php memulakan rangka kerja Laravel dan mengendalikan permintaan HTTP masuk.
- Ia mengarahkan permintaan kepada pengawal yang sesuai, memproses logik dan menjana respons (cth., HTML atau JSON).
8. Maklum Balas Dihantar Balik
Respons Laravel dihantar semula ke pelayan terbina dalam PHP, yang kemudiannya menghantarnya ke penyemak imbas.
Apakah Pelayan Terbina Dalam PHP?
Pelayan terbina dalam PHP ialah pelayan pembangunan mudah yang diperkenalkan dalam PHP 5.4. Ia direka untuk membantu pembangun menguji aplikasi tanpa perlu memasang atau mengkonfigurasi pelayan web penuh.
Ciri-ciri Pelayan Terbina Dalam PHP:
- Kemudahan Penggunaan: Mulakannya dengan satu arahan (php -S).
- Fail Dinamik dan Statik: Menyediakan kedua-dua skrip PHP dan fail statik seperti imej atau helaian gaya.
- Penghalaan Tersuai: Membenarkan pengendalian permintaan tersuai melalui skrip penghala (seperti pelayan Laravel.php).
Perbandingan: Pelayan Terbina Dalam PHP lwn Nginx/Apache
- Tujuan: Pelayan Terbina Dalam PHP adalah Untuk tujuan Pembangunan sahaja. Nginx/Apache adalah untuk Sedia Pengeluaran dan pembangunan.
- Prestasi: Pelayan terbina dalam PHP adalah Single-threaded (satu permintaan pada satu masa) dan Nginx/Apache adalah Multi-threaded (mengendalikan banyak permintaan secara serentak)
- Konfigurasi: Pelayan terbina dalam PHP memerlukan persediaan minimum. nginx/Apache memerlukan fail konfigurasi.
- Ciri Terperinci: Pelayan terbina dalam PHP adalah Terhad (cth., tiada caching). Nignx/Apache boleh digunakan untuk Caching, pengimbangan beban dan banyak lagi.
Walaupun persediaan ini mudah, ia hanya bertujuan untuk pembangunan. Untuk aplikasi langsung, pelayan web seperti Nginx atau Apache menyediakan skalabiliti dan prestasi yang diperlukan untuk mengendalikan trafik pengeluaran.
P.S. Ia sentiasa menarik minat saya untuk mengetahui cara kerja di sebalik tabir. Ini membantu saya memahami perkara yang sebenarnya berlaku apabila saya membina aplikasi. Anda boleh membaca artikel saya yang lain.
Atas ialah kandungan terperinci Apa yang Berlaku Apabila Anda Menjalankan 'php artisan serve' dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!