Witam,
Chciałbym rozpocząć dyskusję o samodzielnym rozszerzaniu php. Nie raz i nie dwa, miałem ochotę jakąś funkcję wkompilować bezpośrednio w php, aby nie dołączać jej w każdym projekcie. Rodzi to jednak problemy z przenośnością kodu. trzeba by zbudować własne rozszerzenie które potem musiałoby być dołączone do produkcyjnej wersji php, a nie każdy serwer obsługuje dynamiczne ładowanie bibliotek i mamy impas. Jeśli kiedyś pisaliście własne rozszerzenie, to jak to potem z tym było? Warto było?
Zapraszam do dyskusji.
p.s. Temat nie dotyczy przewagi i "lepszości" alternatywnych sposobów ładowania funkcji - list include, autoloaderów.
Nie miałem przyjemności pisać własnych rozszerzeń do PHP ale miałem wątpliwą przyjemność pracować na takim rozszerzeniu. Przyznam, że długi czas pracowałem na tym rozszerzeniu i nie wiedziałem nawet o tym. Dopiero jak padł dysk i trzeba było wszystko stawiać od zera, okazało się, że kiedyś ktoś takie coś napisał. Odnalezienie tego zajęło masę czasu, który można było poświęcić na coś zupełnie innego.
Inną kwestią jest praktycznie zerowa przenaszalność kodu. O ile ktoś pracuje na własnych / firmowych serwerach, to nie ma problemu, jednak jeśli jakiś klient sobie zażyczy, by aplikacja stała na jego serwerach, zaczyna się zabawa. Jeśli klient jest kumaty, to szybko dojdzie do porozumienia, jednak jeśli klient należy do grupy upierdliwych, to minie wiele czasu, nim da się go przekonać do "nieautoryzowanych" rozszerzeń.
Od razu nasuwa mi się pytanie - o jakie rozszerzenia chodzi?
Funkcje, które ułatwiają życie i którą są typowo narzędziowe. np. funckja list_methods(), albo trywialna funkcja wyświetlająca dane tablicy/obiektu
<?php function print_pre($data) { http://www.php.net/print '<pre>'; http://www.php.net/print_r($data); http://www.php.net/print '</pre>'; return true; } ?>
Racja. Jeżeli chodzi o "pierdoły" do debugowania typu print_r etc. to rzeczywiście może być nie głupi pomysł ponieważ swój warsztat masz wyposażony w to rozszerzenie i sobie używasz f-cji w projektach.
Jednak temat właściwie się skończył zanim się zaczął ponieważ:
Nie.
Takie rozwiązanie wybieramy dla specyficznych projektów. Gdy wiadomo, że aplikacja i tak wymaga serwera dedykowanego i zawsze będziemy mieli możliwość wykorzystać własne rozszerzenie. Przykład podany przez cysiaczka funkcji print_pre w takim wypadku całkowicie mija się z celem.
Załóżmy jednak, że nasza aplikacja mocno eksploatuje nasze Iteratory czy wspomniane w http://forum.php.pl/index.php?showtopic=93642&view=findpost&p=470686 Zaimplementowanie w cpp takiego http://forum.php.pl/index.php?showtopic=93642&view=findpost&p=470703 z pewnością przełoży się na wzrost wydajności.
Myślałem raczej, że dyskusja pójdzie w stronę tego, jakie kto ma doświadczenia w rozszerzaniu php, czy w modyfikowaniu jego jądra. Jakie kłopoty napotkał, jaka była przydatność takich rozwiązań?
Pozdrawiam.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)