Çapraz dil gelişimi sorun

8 Cevap php

Ben bir veritabanı (My SQL) içeren bir proje üzerinde çalışıyorum, web sitesi (PHP) ve bir özel yüksek performanslı sunucu uygulaması (C + +). C + + uygulama (ve ona eşlik eden istemci uygulaması) veritabanı bunun için uzun vadeli veri depolama ile, projenin ana bölümünü oluşturan. Web sitesi öncelikle çeşitli istatistikleri ve yönetim görüntülemek içindir.

1) Ben veritabanı yalnızca kalıcı veri için kullanılan beri PHP ve C + + uygulama, bir şekilde iletişim kurabilmek için, ve ayrıca c + + uygulama bu nedenle bazı durumlarda verileri yeniden anlatılması gereken bazı şeyler önbelleğe istiyorum . Bu farklı makinelerde olacak muhtemeldir, ve işletim sistemleri hatta muhtemelen farklı. Ben TCP bazı basit komutu ile en iyi seçenek olabilir fikrini düşünüyor oldum - yanıt protokolü?

2) bir kez ortak veritabanı arayüzü kod yazmak ve PHP web sitesi ve c + + uygulamaları hem de kullanmak mümkün olması için en iyi yolu nedir?

8 Cevap

PHP tüm veritabanına erişmeye izin vermiyor deneyebilirsiniz. C + + app tüm veritabanı işi yapmak, ve PHP sitesine veri hizmet yapmak. Sen ondan vb raporlarını almak için PHP için bir sunucu olarak C + + app kısmını çalıştırabilir.

1) iletişim kurmak için veritabanını kullanın. C + + uygulama yapabilirsiniz

select * from table where some_last_modified_timestamp > '<last time checked>';

2) PHP ve C + + hem kodlanmış sorguları tercih saklanan işlemleri kullanın.

# 1: Eğer farklı işletim sistemleri üzerinde iseniz, ardından TCP iyi bir fikir gibi geliyor.

# 2: Bir C kitaplık gerekir gibi geliyor, ve sonra C + + (önemsiz) ve PHP hem o diyoruz. Google'da bir arama örneğin, C PHP uzantıları yazma hakkında makaleler çok döndürür:

http://devzone.zend.com/article/1021

http://www.devarticles.com/c/a/Cplusplus/Developing-Custom-PHP-Extensions-Part-1/

1) Ben de TCP öneririm. Istek-yanıt karmaşıklığına bağlı olarak muhtemelen bazı ad-hoc metin protokol ya almak ya da (yanıtlar ya da istekleri yapılandırılmış ve daha karmaşık ise, özellikle uygun) XML kullanmak istiyorum. XML kullanırsanız, kendi ayrıştırıcılarda / jeneratörler yazmak gerekmez. Hatta XML-RPC kullanarak deneyebilirsiniz ama henüz hiçbir pratik deneyime sahip.

PHP ve C + + hem de aynı SQL kullanmanın en iyi yolu hazır ifadeler var.

Bir başka bağlanır bir sunucu (özel / sabun / dinlenme) barındırmak için iletişim kurmak için iyi bir yoldur. PHP kolayca ev sahibi hem de can ve bağlamak ve bu kod C ile yazılmış olduğu çok C + + kolay olmalıdır.

Önermek Eric Seppänen gibi bir PHP uzantısı yazma yolu projesi kapsamı ve ihtiyaç dışındadır kimliği söylüyorlar.

Protobufs (muhtemelen Avro), bir iletişim protokolü bildirmek ve kullanmak için Thrift ya da kullandığınız bir tcp soket üzerinde. Bu özel bir protokol rulo kalmadan çapraz dil sorunlarını çözmek olacak ve (statik + +! C için yazdığınız) her iki tarafta gerçek nesneler ile sonuna kadar. Ben Thrift çok başarılı bu gibi kullanılır gördüm.

Benim yaklaşım SWIG kullanmaktır. Python ile kullanmak, ama aynı zamanda PHP destekler.

O zaman script kullanmak çok kolay.

Diğer çözümler (wich farklı yerlerde sunucu ve PHP uygulaması için izin verecek) bazı RPC olabilir.

Benim fikrim korkunç kötü eğer öyleyse lütfen bağışlayın, burada bir acemi.

Ama neden biz sadece TCP üzerinden XML aktarmak edemez. Bir C + + TCP sunucusunu ve PHP TCP Client var. Ben PHP oldukça güçlü bir soket API'leri düşünüyorum