Jump to content
php.lv forumi

PHP extensionu viegla izveide


Recommended Posts

Posted

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.

Posted

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

Posted

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.

Posted

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ā...

×
×
  • Create New...