Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Pro _ Kompilowanie własnych rozszerzeń i funkcji

Napisany przez: Cysiaczek 12.05.2008, 13:31:58

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.

Napisany przez: batman 12.05.2008, 18:17:15

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

Napisany przez: Strzałek 13.05.2008, 12:53:58

Od razu nasuwa mi się pytanie - o jakie rozszerzenia chodzi?

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


Czego Ci brakowało? Co chciałeś sobie wkompilować?

Pytam z czystej ciekawości.

Napisany przez: Cysiaczek 13.05.2008, 13:35:02

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

  1. <?php
  2. function print_pre($data)
  3. {
  4. http://www.php.net/print '<pre>';
  5. http://www.php.net/print_r($data);
  6. http://www.php.net/print '</pre>';
  7. return true;
  8. }
  9. ?>

Dlaczego mam ją includować w każdym projekcie? Gdyby sobie siedziała od początku w jadrze php, nie byłoby takiej konieczności.
Z większych, to np. monitor postępu uploadu, który działa bardzo fajnie, ale mało kto z niego może skorzysta, bo na produkcyjnych nie da się go załadować, zazwyczaj ze względów bezpieczeństwa. Tak samo fajnie byłoby dodać własne iteratory - to przyśpieszyłoby ładowanie aplikacji.
Może i są to pierdoły, ale jeszcze bym np. chciał dodać własne zestawy funkcji do parsowania różnych formatów plików.

Pozdrawiam.

Napisany przez: Strzałek 13.05.2008, 14:18:49

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ż:

Cytat
który działa bardzo fajnie, ale mało kto z niego może skorzysta, bo na produkcyjnych nie da się go załadować

Napisany przez: empathon 13.05.2008, 15:14:07

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.

Napisany przez: Cysiaczek 13.05.2008, 18:29:57

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.

Napisany przez: empathon 13.05.2008, 19:25:35

Cytat(Cysiaczek @ 13.05.2008, 19:29:57 ) *
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.

Tworzenie własnego forka języka programowania jest całkowicie pozbawione sensu. Nikt o zdrowych zmysłach tego nie zrobi bo dużo sensowniej i łatwiej jest wybrać inna technologie. Jedyne o czym możemy rozmawiać to pisanie rozszerzeń.

Jak napisać własne rozszerzenie: http://devzone.zend.com/node/view/id/1021

Napisany przez: Sedziwoj 14.05.2008, 08:45:49

Cytat(Cysiaczek @ 13.05.2008, 14:35:02 ) *
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

A to już nie lepiej xdebug i var_dump()?

(tak tylko na myśl mi się rzuciło, bo sam jakoś nie widzę, aby w projektach nie dla siebie, korzystać z takich niestandardowych rzeczy, chyba że to bardzo specyficzny projekt)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)