Java varolan bir php sınıfı dönüştürmek için en iyi yolu nedir?

12 Cevap java

Ben hızlı benim için bir kabus haline geliyor java sınıfları, içine birkaç php sınıfları dönüştürme ile görevli olmuştur. Ben C. It benzer olma, temel dil yapısını anlamak dönüyor işlev çağrıları ve sınıf görüşmeleri hiçbir yere gitmek gibi görünüyor ve bir var !middle of an expression! beyan edilebilir aslında hepsi benim baş, oh ve sıfır "0" belgeler olduğu gerçektir.

reference material java koduna php dönüştürmek için tool (ve / veya) en iyi method (ve / veya) nedir?

edit: Ben java için php dönüştürmek için yaşıyorum 3 nedeni vardır.

  1. Her zamanki nedeni, patronum beni de söyledi.
  2. Php bu minutes bazen sunucuya bir istek çalıştırmak için alıyor, çok yavaş.
  3. php ölçek ve korumak için bir kabus. (en azından bizi güçlü yazılı dil türleri için)

12 Cevap

Sen en iyi uygulamalar hakkında isteyin. Muhtemelen kötü bir sonuç verecek bir otomatik aracını kullanarak: Ben senin durumunda iyi bir uygulama hoş theman'ait sunulan yaklaşım olduğuna inanıyorum, çöp dışarı çöp ...

Eğer kodu vardır: analiz, geniş hatlarında gerekirse. Ve Java onu yeniden oluşturun. O zaman alıcı olabilir, ama kör dönüşüm yaparak daha ille kötü olabilir. Ve yolda belgelemek, ve belki sorunlu parçaları bulmak için bu analizi kullanabilirsiniz.

Bir insan en iyi araçtır.

C gibi bir şey php özelliklerin çoğunu kaldırmak için php yeniden denemek istiyorsunuz. Sonra Java yeniden kolay bir zaman olacak.

Ama neden php dönüştürmek gerekiyor, sormak gerekir? Java çağrılabilir şey içine php şal değil miyim? Dönüştürme yaparken Bu şekilde herhangi bir hata eklemek olmaz.

Ben bu PHP Optimization Tips söz söyledi ve ben burada tekrar söyleyeceğim: Eğer statik bir ortamda (web sunucusu modülü veya FastCGI) PHP'nin çalıştırıyorsanız, (örneğin {[gibi, bir opcode önbellek kullanmak 1)]}. Aksi takdirde PHP, her istek üzerine yeniden derlemede / yeniden yorumluyor!

PHP kodu bağlı olarak, bu neredeyse imkansız bir görev olabilir. Diğer yol etrafında çok daha kolaydır. PHP çok dinamik bir dildir, ve Java imkansız olan şeyler kurtulabiliriz. Bir özellikle yıkıcı şey bir PHP değişkeni yürütülmesi sırasında türünü değişebilir olmasıdır. Bu nadiren de olsa kullanılır, ama olabilirdi. Buna ek olarak, PHP gevşek yazdığınız olduğundan, örtülü dönüşüm bir yeri vardır. Diğerleri programın anlamı için önemli ise bazı tesadüfi. Ve sonra PHP kodu Java gibi kesinlikle odaklı nesne olmadığı gerçeği var. Hatta nesne yönelimli PHP programlarında, genellikle usul unsurların bir dereceye göreceksiniz. Bu Java kodu doğrudan eşlenmiş olamaz.

Pyrolistical gibi, ben bu kodu dönüştürmek gerekir neden olarak merak ediyorum? O eski kod varsa, bu PHP kodu çalışmasını sağlamak için daha iyi olmaz ve servis arayüzü (SOAP, RPC, diğerleri) çeşit ile onunla arayüzü? Daha sonra yavaş yavaş zamanla parçaları yerini alabilir.

Şeyiyle ben JVM için bir PHP çalışma zamanı olduğunu işaret olmalıdır. Çıkış Quercus.

Siz PHP geçerli kod temeli bırakarak ve sadece JVM üzerinde çalıştırmak için alma düşünebilirsiniz. Gerektiğinde daha sonra Java'da kod yazabilirsiniz.

Caucho / Reçine sunucu run-zamanlı Java servlet içine PHP Kodu dönüştürür!

Ben normalde php5servlet tarafından oluşturulan sınıfı, bir kavanoz tomcat mevcut Thats & alacaktı reçine.

Ardından Java sınıf dosyası değiştirin.

şerefe

Aslında (bu çekirdek API sınıfları binlerce ve yerleşik işlevleri içerir), varsayılan olarak, çok daha esnek: Birisi Java, PHP gibi esnek olmadığını ima etti. Sen böyle dinamik türleri yer açmak için, örneğin, Java için Autoboxing olarak her iki dilde temel kavramlarını, öğrenmek zorunda. http://www.javaworld.com ve ben şu anda Java PHP den büyük API taşıma üzerinde çalışıyorum check out, bir kaç gün beni almalıdır. Iki sınıf, libcurl, json ayrıştırma, ve belki yüz yöntemleri / fonksiyonları.

I can not imagine that a tool for this is existing. I did something similar with C++ und Java. It is a pain, but the best is to impement it by your self.

Veya C yazmak ve Java onu aramak için bir jni warpper ile bir dll oluşturmak. Bu fastet şekilde olmalıdır.

Muhtemelen bu bazı yapmak için Yansıma API ile bir şeyler yazabilirim, ama sen gerçekten işlevi gövdeleri ile bir şey yapamadı - hiçbir uygulama var saplama sınıfları ile bitirmek istiyorum.

It sounds like you're trying to convert PHP code that is procedural into an OO code base.

Bu çok Java PHP bir soru değil, bir paradigma kayması değildir. Bunu yapmak için otomatik bir yolu yok, kaba olacak. Bir kod tabanı kötü yazılmış, özellikle.

Btw, ben de neden dönüştürdüğünüz istiyorsunuz? Sadece performans mı? Ve eğer öyleyse, performans sorunlarını düzeltmek için yapabileceği hiçbir şey yoktur. I don't think just converting from one language to another will fix it, you'll still have to find the bottleneck.