Saya sedang membangunkan aplikasi Laravel 9.x dalam Windows 10. Versi PHP semasa saya ialah PHP 8.1.5 (cli) (build: Apr 12 2022 17:38:57) (ZTS Visual C++ 2019 x64)
. Adakah ini versi selamat benang atau versi tidak selamat benang? bagaimana saya boleh tahu? Bilakah saya harus memilih versi selamat benang berbanding versi tidak selamat benang?
Saya cuba meneliti soalan ini pada StackOverflow, tetapi soalan/jawapan yang saya lihat nampaknya sudah sedekad atau lebih lama - sesuatu seperti ini - dan saya amat mengesyaki bahawa jika saya bertanya soalan ini hari ini, saya mungkin akan mendapat jawapan yang berbeza hanya Ini kerana teknologi telah berubah dalam beberapa tahun kebelakangan ini. Adakah ini satu andaian yang munasabah? (Sekurang-kurangnya, versi PHP semasa saya nampaknya menggunakan pengkompil yang lebih baharu VC++ 2019, bukan VC6 atau VC9.)
Saya belum tahu lagi bagaimana rupa persekitaran pengeluaran saya, atau walaupun apl yang saya bangunkan akan sampai ke pengeluaran, kerana ia hanyalah apl yang saya tulis untuk (semula) mempelajari Laravel. Saya mungkin akan meletakkan ini dalam pengeluaran pada satu ketika sebagai demo untuk aplikasi Laravel, tetapi sama ada ia akan berada pada perkhidmatan pengehosan, Netlify atau sesuatu yang lain, saya tidak tahu lagi.
Hanya untuk memberi anda sedikit latar belakang, soalan ini hanya muncul kerana saya cuba mempelajari cara untuk melangkah melalui kod sumber Laravel untuk menyahpepijat isu, yang jelas memerlukan saya menambah XDebug pada XAMPP. Arahan yang saya temui untuk memasang XDebug menunjukkan saya ke sini dan mencadangkan saya memuat turun binari Windows untuk versi PHP saya. Tiada perduaan untuk 8.1.5, jadi saya tidak tahu sama ada salah satu perduaan untuk 8.1 akan berfungsi, atau jika saya lebih baik menggunakan 8.1 thread-safe atau 8.1 non-thread-safe. Adalah lebih baik jika PHP saya dinaik taraf kepada 8.2 dahulu, saya masih tidak tahu sama ada thread-safe atau non-thread-safe adalah pilihan yang lebih baik.
Bolehkah seseorang memberitahu saya tentang isu ini?
Adakah ini versi selamat untuk benang atau tidak selamat untuk benang? bagaimana saya boleh tahu?
Anda boleh menggunakan
phpinfo()
函数并查找Thread Safety
lajur lama.Jika anda telah menyediakan PHP dalam persekitaran PATH anda, anda juga boleh mendapatkannya melalui CLI menggunakan arahan pantas
php -i | grep 线程
Bilakah saya harus memilih versi selamat benang berbanding versi tidak selamat benang?
Mengikut dokumen rasmi PHP
Saya tidak tahu lagi bagaimana rupa persekitaran pengeluaran saya...
Secara umumnya, tiada perbezaan dalam pelaksanaan kod TS atau NTS. Ia lebih berorientasikan pelayan web.
Jika saya ingat dengan betul, XAMPP menggunakan Apache Handler secara lalai, jadi ia mungkin binaan selamat benang. Ya, binari Xdebug untuk PHP8.1 berfungsi dengan baik.
Secara teknikal, NTS sepatutnya lebih laju sedikit kerana ia tidak perlu mengambil kira keselamatan benang.
Secara peribadi, saya rasa ia tidak penting melainkan anda mahu meluangkan lebih banyak masa bermain-main dengan pelayan web, beralih kepada FastCGI atau PHP-FPM kerana anda masih dalam fasa pembangunan, saya fikir kekal dengan tetapan lalai dan fokus pada Ia akan menjadi lebih cekap untuk menyelesaikannya.