Nasıl PHP'nin main.c Yürütülmesine Başlangıç ​​mı

3 Cevap php

Ben PHP 5.3.1 kaynak ağacının çevresinde alay, ve main.c bakmak karar verildi. PHP her çalıştığında perde arkasında neler olduğunu merak ediyordum.

Ben herhangi bir C veya C + + programı ana adında bir işlevi yürütme başladığı izlenimi altında oldu, ama ben main.c. bu isimde bir fonksiyon görmüyorum

Nerede PHP kodu aslında (CGI vs mod_php'yi vs komut satırı için farklı?) Çalıştırmaya başlayabilirsiniz etmez ve ne ben eksik bana bu soruyu kendime cevap vereyim istiyorum main.c dosyasında r / t hiçbir ana fonksiyonu w / bir dahaki sefere?

3 Cevap

Ben şimdiye kadar internette soruya bu tür herhangi bir net cevap gördüm sanmıyorum, ama o geldiğinde muhtemelen referans kitap Kitabın Extending and Embedding PHP, bazı paragrafları ile ilgi olabilir PHP uzantıları, ve PHP motorun internals yazma için.

Cümle ilginç bir çift, bölüm 1 alıntı "PHP Yaşam Döngüsü" dır:

In a common webserver environment, you'll never explicitly start the PHP interpreter ; you'll start Apache or some other web server that will load PHP and process scripts as needed...

Ve hemen sonra:

... the CLI binary actually behaves just the same way. A php command, entered at the system prompt, starts up the "command line API", which acts as a mini-web server designed to service a single request.

Eğer biraz daha okuma denemek isterseniz, muhtemelen, Google books bazı sayfaları bulmak mümkün olacak ...

main() function main.c. adlı bir dosyada olmak zorunda değildir Php komut satırı arayüzü için main() php_cli.c (satır 642) yer almaktadır.

'Ana' C / C + + giriş noktası olması için yaygın, ve standartlar bu nedenle özellikle tedavi, ancak bu tek olasılık (ancak, standardın gerektirdiği tek) değil. Zamanı kütüphane uygulama kontrolünü alır önce şeyleri kurmak gerekiyor çünkü aslında ele nasıl, uygulama özgüdür. Son cevap için bağlayıcı ayarları bakabilirsiniz.

Ne istediğinizi olabilir gibi php_module_startup görünüyor, sonunda gerçek giriş noktasından denen olabilir.