Eğer "derlemek" Can

10 Cevap php

Ben PHP sunucuda çalıştırmadan önce bayt koduna derlenir ve daha sonra bütün script her web erişimi ile yeniden yorumlanması zorunda değildir böylece bayt kod önbelleğe alınabilir biliyoruz.

Ama php "derleme" ve sadece bayt kod yorumlayıcısı tarafından idare edilecek bir ikili-ish dosyayı yükleyebilirsiniz?

10 Cevap

Bu soru sordu sonra, Facebook muhtemelen dünyanın 10 büyük birini çalıştıran olarak görülmeye bugüne kadar en iyi test edilmiş PHP derleyici (ki, HipHop for PHP (şimdi HHVM olarak da bilinir) başlattı web siteleri).

Bunun ötesinde, googling PHP compiler 3. parti çözümleri bir dizi çıkıyor.

HHVM

  • Wikipedia, GitHub
  • eskiden PHP için hiphop
  • sanal (yerel kod JIT derleme) ile makine ve baytkoduna derleyici
  • (erken 2013 itibariyle) durdurulan HPHPc öncesinde C + + derlenmiş
  • Facebook tarafından geliştirilen

Phalanger

phc

  • yerli ikili derler
  • (Şubat 2014) şimdi çok aktif değil - 2013 yaz 2011 son sürüm, son değişiklik

Roadsend PHP Compiler

bcompiler

Project Zero

  • Wikipedia, IBM
  • WebSphere sMash için değişikliklerin kuluçka
  • IBM tarafından desteklenen
  • Java bayt derler
  • görünüyor (Şubat 2014) artık üretilmiyor - aşağı web sitesi, 2008 ve 2009 yılında büyük yutturmaca gibi görünüyor

Bambalam

  • stand-alone Windows ikilileri derler
  • ikili bayt kodu ve başlatıcısı içeren
  • 2006 yılında son değişiklik - (Şubat 2014) artık üretilmiyor görünüyor

BinaryPHP

  • C + + derler
  • 2003 yılında son değişiklik - (Şubat 2014) artık üretilmiyor görünüyor

Kısa cevap "hayır" dır.

PHP'nin mevcut uygulama yorumlanmış bir dil olmasıdır. Herhangi bir dil teknik yorumlanabilir veya derlenmiş olabilir aslında teorik yönlerini iddia edebilir, ama o haliyle, mevcut uygulamaları PHP kodu çalıştırmak için bir tercüman gerektirir ve tercüman yürütme ortamını yönetir şekildedir.

Önceden derlenmiş PHP için yükleme hakkında sorunuzu yanıtlamak için, büyük olasılıkla mümkün, ama PHP yorumlayıcı böyle bir dosyayı okumak ve onunla çalışmak için bir yol uygulamak gerekiyor. Zaten orada mevcut opcode önbelleğe ile, çok ödül kazanmak istiyorum, bir görev gibi görünmüyor.

Soru ilk sorulan bu yana, bir "tür" ile "hayır" dışında bir düz gelen bu cevap bir değişim olmuştur

http://github.com/facebook/hiphop-php/wiki

Hip Hop for PHP is a compiler that takes PHP code and turns it into highly optimized C++ Apparently, some functions are not supported (for example 'explode')

Ben HipHop nasıl uygulanacağı hakkında daha fazla bilgi için bakarken bu soru bulundu ve ben konuşmak düşündüm :)

phc sunucuya yüklenebilir paylaşılan kütüphanelerin içine PHP programlarını derlemek sağlar. PHP program ikili derlendi. Bu eval s destek include s ve tüm PHP standart kütüphane için böyle bir yolla yapılır.

Eğer sadece bir PHP komut dosyası bir ikili yürütülebilir üretmek için arıyorsanız o zaman tam olarak neye ihtiyacınız olduğunu biliyoruz görünmesini sağlayacaktır, çünkü yapmaya çalışıyorum önlemek lütfen daha soru son derece precises. Ayrıca, en PHP geliştiricisi bir bycode ne olduğu hakkında kesinlikle sıfır ipucu var.

Bunu dedi, cevaplar YES. Ben sadece ikili içine bir PHP komut dosyası derleme bitirmek var. Ve sadece herhangi bir ikili. Ben ... tüm bağımlılıkları ile dağıtılan ve herhangi bir sorun olmadan idam edilebilir bir taşınabilir ikili çevirmek CDE uygulama (http://www.stanford.edu/ ~ pgbovine / cde.html) kullanmış ve işe yarıyor güzel.

Tüm ihtiyacınız birinci basamak sağlık hizmetini kullanmak için (http://phpcompiler.org/)

Dürüst şeyler bu sitede nasıl çalıştığı hakkında emin değilim, ama mutlaka tüm doğru cevap değildir cevapları çalıştırmak başlıyorum.

Orada da

hangi amaçları

  • Özel PHP uygulamalarında bütün komut kodlamak
  • Özel PHP uygulamalarında bazı sınıf ve / veya işlevlerini kodlamak
  • Bir php.exe için gerek kalmadan, istemci masaüstü kullanılabilir php-gtk uygulamaları üretimini sağlayacak.
  • C dönüştürücü bir PHP için fizibilite çalışması yapmak

Uzatma PECL'de mevcuttur.

Um, herkes bu kişinin soran tam olarak ne yapar, hangi Zend Guard duydum. O / "makine koduna" PHP kodu obfuscates kodlar.

PHP gerçekten birçok program gibi derlenen almaz. Eğer olsa okunamayacak şekilde zerdüştlerin encoder kullanabilirsiniz.

PHP kod birkaç "derleyici" vardır. Bu sadece çalışma zamanında yorumlanması gerekir beri çoğu, PHP özelliklerinin tümünü desteklemez.

Biz Phalanger kullanıyorsanız - http://www.php-compiler.net/ - O tek başına bir DLL olarak dağıtılmış olabilir ki, hatta o kirli PHP dinamik özellikleri destekleyen ve hala NET montaj olarak bunları derlemek mümkün olur..

paylaşılan hafızada uçucu entegre OPcache modülü ile 5.5.x, çok daha fazla performans ve php dinamizmi ilke görmek bakir kalır.

http://www.php.net/manual/en/opcache.installation.php