Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.

 
Reply to this topicStart new topic
> Kompilowanie własnych rozszerzeń i funkcji
Cysiaczek
post 12.05.2008, 13:31:58
Post #1





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
batman
post 12.05.2008, 18:17:15
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




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


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Strzałek
post 13.05.2008, 12:53:58
Post #3





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post 13.05.2008, 13:35:02
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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. print '<pre>';
  5. print_r($data);
  6. 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.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
Strzałek
post 13.05.2008, 14:18:49
Post #5





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

Ostrzeżenie: (0%)
-----


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ć


--------------------
Go to the top of the page
+Quote Post
empathon
post 13.05.2008, 15:14:07
Post #6





Grupa: Zarejestrowani
Postów: 246
Pomógł: 31
Dołączył: 13.11.2006
Skąd: się znamy?

Ostrzeżenie: (0%)
-----


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 innym temacie sumowanie stringów. Zaimplementowanie w cpp takiego StringBuilder z pewnością przełoży się na wzrost wydajności.


--------------------
Goldenline: Łukasz Rodziewicz
Go to the top of the page
+Quote Post
Cysiaczek
post 13.05.2008, 18:29:57
Post #7





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
empathon
post 13.05.2008, 19:25:35
Post #8





Grupa: Zarejestrowani
Postów: 246
Pomógł: 31
Dołączył: 13.11.2006
Skąd: się znamy?

Ostrzeżenie: (0%)
-----


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


--------------------
Goldenline: Łukasz Rodziewicz
Go to the top of the page
+Quote Post
Sedziwoj
post 14.05.2008, 08:45:49
Post #9





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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)


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.03.2024 - 04:06