Bir PHP komut dosyası tam olarak nasıl çalıştırılır?

4 Cevap php

Ben sadece "bir PHP komut dosyası tam olarak nasıl çalıştırılır?" Kendi kendime düşünüyordum Ben sözdizimi hataları vs için ilk ayrıştırılır ve sonra yorumlanır ve idam edildi düşündüm.

Ancak, why ben bunun doğru olduğuna inanıyorum bilmiyorum. Muhtemelen yanılıyorum.

Peki, tam olarak nasıl bir PHP dosyası yorumlanır ve çalıştırılır? Nedir bu aşamaları içerir? Nasıl dosyaları script ayrıştırma uyması dahil mi?

Bu sadece bana başım çevresinde olsun yardımcı olmaktır. Ben ilgileniyorum ve Google ile iyi bir cevap bulamıyorum.

4 Cevap

Take a listen to:
http://techportal.inviqa.com/2010/02/02/php-compiler-internals/

Bu benim aynı şeyi merak ediyorum, büyük bir sorudur.

Bu sunumda biz bir PHP yorumlayıcı değiştirme hakkında gitmek nasıl göstermek için yeni bir dil yapısı tanıtmak. Ve internals sözcüksel analiz, ayrıştırma, kod üretimi ve yürütme aşamaları ile, pek çok dil uygulamaları için ortak bir desen uygulayın.

(As a side note: ibuildings seems to be a leader in PHP development. They are based in the UK. Who is a similar company in the US?)

Temelde, bir PHP komut dosyası yüklenir, her zaman iki adım gider:

  • The PHP source code is parsed, and converted to what's called opcodes
    • Java bayt bir eşdeğer tür
    • Bu neye benzediğini görmek istiyorsanız, kullanabileceğiniz VLD extension
  • Daha sonra, bu işlem kodu yürütülür

Sebastian Bergmann Bu slaytları, Slideshare, sen biraz daha iyi olduğunu işlemi anlamanıza yardımcı olabilir: PHP Compiler Internals

PHP PHP 4.0 'dan beri derlenen bir dildir

Bir derleyici ne fikri büyük karışıklığa yol açan bir konu gibi görünüyor. Bazı insanlar bir derleyici bir yürütülebilir program içine bir dilde kaynak kodu dönüştüren bir program olduğunu varsayalım. Bir derleyici ne tanımı aslında daha geniştir.

Bir derleyici kod başka temsil içine kaynak kodunu dönüştüren bir programdır. Hedef temsil genellikle makine kodu, ama aynı zamanda başka bir dilde ya da aynı dilde kaynak kodu olabilir.

PHP 4 ilk kez piyasaya çıktığında PHP, 2000 yılında derlenmiş bir dil haline geldi. Sürüm 3 kadar, PHP kaynak kodu ayrıştırılır ve PHP yorumlayıcısı tarafından hemen idam.

PHP 4 Zend motorunu tanıttı. Bu motor birkaç aşamadan PHP kod işleme böler. İlk aşama PHP kaynak kodu ayrıştırır ve Zend opcodes olarak bilinen PHP kodu bir ikili gösterimini oluşturur. Opcodes Java baytkodlarına benzer yönergeler kümesidir. Bu işlem kodları bellekte depolanır. Zend motoru işleme ikinci aşaması oluşturulan opcodes yürütme oluşur.

http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html gidin daha fazla bilgi Formu

İşte tüm parser tokens bir liste de.