Jump to content
php.lv forumi

PHP extensionu viegla izveide


codez

Recommended Posts

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

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

×
×
  • Create New...