Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Linux, C++ ja PHP

Sivun loppuun

tesmu [15.04.2009 22:57:12]

#

Hei!

Olen tässä yrittänyt etsiä jotain kunnon referenssiä siitä, että miten käytetään PHP:tä C++ -sovelluksissa. Tarkoitan siis, että voisin C++ -ohjelmaan tehdä PHP-pluginin. Olen tutkaillut -dev -paketin mukana tulleita headereita, mutta silti asia ei oikein minulle aukene. Löytyykö jostain päin nettiä jotain tutoriaalia millä luodaan yksinkertainen PHP-viritys C++:lla

Metabolix [15.04.2009 23:44:13]

#

PHP sisältää niin paljon omia funktioitaan, että ei olisi mielekästä tunkea PHP-tulkkia kaikkine funktioineen oman ohjelman sisään. Taitaa tuo dev-puolikin toimia paremmin niin päin, että PHP:hen voi tehdä C++:lla omia kirjastoja. Niiden tekemiseen taas löytyy helpoiten vastaus jonkin mahdollisimman yksinkertaisen PHP-pluginin lähdekoodista.

Millaisia plugineja tarkemmin olet tekemässä ja millaisessa ympäristössä niiden pitäisi toimia?

tesmu [15.04.2009 23:54:50]

#

Lähinnä ajattelin irc-bottiini tehdä PHP-pluginimahdollisuuden. Eli käytännössä ohjelma toimittaisi tarvittavan datan PHP:lle joka suorittaisi skriptitiedoston ja tekisi asioita sen mukaan mitä data on. Tällähetkellä mulla PHP-skriptit pyörii niin, että muodostan main.php-tiedoston johon tulee $nick = "nikki"; ja sitten main.php suorittaa koodi.php-tiedoston jossa on erikseen skriptit. Servulle takaisin tunkeminen hoituu sillä, että echotan "SEND datatähän" ja ohjelmani hakee PHP:n outputin. Mietin, että voisi olla helpompi ja parempi vaihtoehto, jos saisin PHP-parserin ns bottini pääkoodiin.

map_ [16.04.2009 16:08:20]

#

PHP:n apache-pluginin (mod_php) lähdekoodista voisi ehkä olla jotain apua.

Oletko harkinnut PHP:n sijaan jotain muuta kieltä? Esimerkiksi Lua on suunniteltu juuri tällaiseksi helposti integroitavaksi plugin-kieleksi. http://www.lua.org/

tesmu [16.04.2009 17:05:09]

#

Olen miettinyt luaa, mutta PHP sopisi tarkoitukseeni kaikista parhaiten. Mutta katselenpas apache-pluginin mod_php:tä jos siitä olisi apua. Tietysti jos joku löytää hyvän referenssin niin saa siihenkin linkin laittaa...

map_ [17.04.2009 04:33:50]

#

Vielä yksi mahdollisuus olisi käynnistää PHP erillisenä prosessina, kuten jo teetkin, ja kommunikoida sen kanssa jonkin RPC-menetelmän kautta. XML-RPC lienee niistä yksinkertaisimpia.

Erillinen prosessi on siitäkin kiva, että PHP-skriptisi mahdolliset kaatumiset, ikuiset silmukat ja muistivuodot eivät vaikuta pääohjelmaasi.

tesmu [17.04.2009 08:05:12]

#

Niin, noh täytyypi katsella mikä olisi fiksuinta. Tosin PHP-skriptini toimii tällähetkellä sen verran loistavasti ettei se pääohjelmaan vaikuta muutakuin hieman hidastavasti (johtuen siitä et mysli on täynnä paskaa ja PHP-skripti käyttää sitä) Mietin vaan, että onko tämä tapani toimia kyseisessä jutussa fiksu / järkevä vai jopa väärä tapa toimia.

Metabolix [17.04.2009 09:48:30]

#

Toimintatapasi on aivan oikea, jos kutsuja C++:n ja PHP:n välillä ei tule niin valtavasti, että ne olisivat suurin rajoittava tekijä nopeuden kannalta.

XML-RPC:hen haluan vielä mainita sen verran, että XML on aika mutkikas ja vaatii käytännössä C++:n puolesta ylimääräistä kirjastoa ohjelmaan. Jos joustavuusvaatimukset eivät ole aivan hirmuiset, kannattaa ehkä harkita muitakin (omatekoisia) vaihtoehtoja. Aiheesta muualla: CodeProject: Simple Cross-language Serializing.

tesmu [17.04.2009 21:40:45]

#

No sanotaanko nyt näin, että kaikki serveriltä tuleva data laitetaan PHP:lle, mutta PHP-skripti suoriutuu niin nopeasti siitä ettei merkittävää vaikutusta nopeuteen näy.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta