codez Posted December 5, 2008 Report Share Posted December 5, 2008 Uzdūros šim: http://www.swig.org/index.php http://www.swig.org/Doc1.3/Php.html Taisi parastu C++ failu un tad SWIG tev uzbūvēs PHP modulim nepieciešamo. Vēl neesmu ietestējis, bet tiem, kas negrib iedziļināties PHP extensionu struktūrā, varētu būt ātrs veids kā uzcept PHP extensionu. Link to comment Share on other sites More sharing options...
bubu Posted December 5, 2008 Report Share Posted December 5, 2008 Agrāk esmu rakstījis dažus extensionus Python'am, ko arī māk SWIG's, un man nav patikusi bagāža, ko SWIG dod līdzi. Tb tas uzģēnerē diezgan daudz papiluds koda, kas tiek izmantots. Nu jau kādu laiku Python'am eksistē ctypes bibliotēka, kas māk izsaukt funkcijas no .dll faila pa tiešo (vai .so faila linukšiem, vai .dylib MacOSX'iem). Ar šādu veidu man Python'a funkcionalitātes papildināšana ar neitīvo kodu liekas daudz patīkamāka un vienkāršāka. Nevajag nekādus papildu tūļus aiztikt (ctypes ir iekļauts Python standartbibliotēkā sākot no 2.5 versijas). PHP arī eksistē līdzīga bibliotēka, diemžēl gan tikai Windows'am. T.i. tu uztaisi DLL failu, no kura eksportē gribētās funkcijas. Tad attiecīgi piereģistrē funkciju ar w32api_register_function un izsauc tās ar w32api_invoke_function funkciju. Kautkad pasen, vēl php4 laikos, biju paeksperimentējis ar šīm funkcijām - strādā labi un ērti. Link to comment Share on other sites More sharing options...
marrtins Posted December 5, 2008 Report Share Posted December 5, 2008 Hmm, dažos vārdos var apstāstīt, kāds reāls ieguvums ir izmantojot šo SWING (runājot tieši par PHP)? Cik, ātrumā pārlaižot ar acīm pāri aprakstam, sapratu, tad tas ir kaut kāds wrapperis apkārt PHP C wrapper funkcijām? :D Link to comment Share on other sites More sharing options...
codez Posted December 5, 2008 Author Report Share Posted December 5, 2008 Kad taisa extensionu, tad kods izskatās aptuveni šāds: http://devzone.zend.com/node/view/id/1021#Heading6 C++ tas aiņemtu dažas rindiņas. SWIG pārtaisīs tavu kodu tā, lai to varētu nokompilēt kā PHP extensionu. Kaut kad vēlāk ir doma patestēt, kāds ir ātruma efekts, kādus sarežģītākus aprēķinus realizējot C++. Bet nu tā tāda spēlēšanās tāpat, jo man personīgi botlenecks pagaidām PHP aplikācijās ir MYSQL I/O. Link to comment Share on other sites More sharing options...
Delfins Posted December 5, 2008 Report Share Posted December 5, 2008 webā praktiski nekruķī sarežģītus parēķinus. vismaz es neiedomājos tādu, kura dēļ būtu jātaisa extension. Ja nu vienīgi pateŗē daudz atmiņas vai ir miljons transakciju ciklā... Link to comment Share on other sites More sharing options...
Recommended Posts