Kontynuuje moje poszukiwania narzędzi i informacji nt. tworzenia rozszerzeń języka php, jednak niestety tutki na zend.com autorstwa Sary Golemon kończą się w miejscu najbardziej dla mnie interesującym czyli jak tworzyć obiekty/interfejsy/iteratory, niby jest zapowiedź kolejnej części, ale wątpię, żeby ona kiedykolkiek ukazała się w witrynie, bo Sara po pierwsze wydała książkę nt pisania rozszerzeń (niestety nie znalazłem polskiego wydania), a po drugie od tej zapowiedzi minęły już 4 lata. Nicto trzeba szukać dalej, troche guglania i znowu jakis skrawek informacji, na blogu niejakiego Ananta można tam znaleźć link do tutka Marcusa Boergera, który skupia sie na OOP właśnie, ale niestety i on jest już chyba dość przestarzały, bo nie obyło się bez problemów podczas kompilacji kodu, ale wystarczył szybki rzut oka w inne moduły i źródła zend engine, żeby odkryć rozwiązanie (open-source się sprawdza :D). Niestety pisanie modułów w ten sposób napewno nie przypomina dobrej zabawy, te wszystkie makra, długaśne nazwy funkcji, haki na wielowątkowość markami z rodziny TSRMLS_*, no np. żeby się przespacerować po tablicy trzeba użyć takiego potwora:

for(
zend_hash_internal_pointer_reset_ex( arr_hash, &pointer );
zend_hash_get_current_data_ex(arr_hash, (void**)&data, &pointer ) == SUCCESS;
zend_hash_move_forward_ex(arr_hash, &pointer )
){
// tutaj ma sie cos dziac
}

Nie, to zdecydowanie nie jest to co tygryski lubią najbardziej :/

Anant podaje link go generatora kodu rozszerzeń, dostępnego w repozytoriach pear/pecl, które się nazywa CodeGen_PECL, ale po doświadczeniach z boost::python i łyku elgancji i prostoty z jaką można tworzyć rozszerzenia zapragnąłem czegoś podobnego, już już zacząłem obmyślać koncepcje kiedy zapaliła się żarówka – może nie tylko mnie zrobiło sie niedobrze na widok tej gmatwaniny i już coś takiego napisał? Jak się zapewne domyślacie tak jest. Po wpisaniu w guglu boost php, wyskakuje strona projektu o tejże nazwie, autorstwa Morioshiego. Sama biblioteka chyba nie została nigdy zgłoszona do komitetu akceptacyjnego boost.org, a może coś przegapiłem 🙂

Skontaktowałem się z autorem w sprawie dopisania paru rzeczy i obiecał dodać mnie do projektu, no to cytując kapitana planete „Goooo Planet!”.