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.

> Aplikacje PHP - Pluginy
Vengeance
post 9.08.2005, 12:42:33
Post #1





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


Witajcie,

Były już długie dyskusje o MVC, jeszcze dłuższe o budowie jądra...
Proponuje by rozpocząc dyskusje na temat, jak w naszej aplikacji umożliwić programiście piasnie dowolnych rozszerzeń. Chodzi mi o Pluginy.

Niektóre skrypty (phpBB) rozwiązują to na zasadzie zwykłej edycji kodu,
inne (WordPress) udostępniają specjalne API. Jak Wy widzicie budowe takiego systemu?

Powiesz szczerze, że nigdy nad takim czymś nie myślałem i nie robiłem nic w tym rodzaju więc w pierwszym poscie nie opisze swojego sposobu, bo go po prostu nie mam. Licze na Waszą inwencję i na to iż temat się przyjmie :]

Czyli podsumowując:
Jak stworzyć dobre API dla Pluginów.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zeman
post 15.04.2007, 23:18:06
Post #2





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 29.03.2007

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


Cytat(faster @ 15.04.2007, 23:44:14 ) *
Witam,
... czytam, czytam ... dokładnie i sam się zastanawiam jak podejść do tematu.
Zgadzam się na pewno z jednym, pluginy to rozszerzenia funkcji systemu zatem trzeba najpierw zaplanować co chcemy aby było rozszerzane. Słyszałem o systemach które są ponoć całkowicie rozszerzalne i można pisać pluginy do wszystkiego ale czy to przypadkiem nie polega na przepisywaniu czy modyfikacji istniejącego już w systemie kodu? Bo nie potrafię sobie wyobrazić jak można rozszerzyć wszystko smile.gif w aplikacji.
Zastanawia mnie natomiast jeszcze inna rzecz .... jak trzeba zaprojektować genialnie aplikację aby była tak rozszerzalna jak firefox smile.gif co Wy na to?

Pozdrawiam
::faster



Aplikacje typu FF sa serwerami COM'opodobnymi, które udostępniają na zewnątrz kupę interfejsów. Pisząc plugin pisze się tak naprawdę aplikację kliencką która wykorzystuje te uzewnętrznione interfejsy żeby coś na nich robić. Jak można się domyślać FF ma swoje wewnętrzne obiekty, te obiekty implementują interfejsy. Interfejsy są "przedefiniowane" na tzn język IDL, który stanowi jakby pomost pomiędzy różnymi językami - IDL stanowi standard opisywania interfejsów. Aplikacje - pluginy z grubsza powiedziawszy odczytują definicje interfejsów z tego IDLa i przedefiniowują je na język w którym jest pisany plugin. Najczęściej języki wspierają tworzenie tzw wrapperów. Z punktu widzenia autora pluginu wrapper to obiekt będący klonem obiektu w aplikacji serwera, czyli np jeśli FF ma obiekt powiedzmy Document, to w pluginie też istnieje obiekt Document o tych samych metodach, jednak w pluginie obiekt ten jest wrapperem na obiekt w FF - czyli jeśli plugin wywoła Document->metoda(), to tak naprawdę wywoła się metoda() ale w FF. FF z tego co mi wiadomo wykorzystuje XPCOM i jest to technologia podobna do COM i CORBA, tyle że cross-platform. COM nie jest cross-platform.
Suma sumarum wlaśnie tak się robi aplikacje typu FF - odrazu się zakłada że aplikacja będzie serwerem COM i wszystkim nowo tworzonym klasom nadaje się cechę bycia obiektem COM, co jest równoznaczne z tym, że klasa będzie udostępniała na zewnątrz interfejsy do języka IDL. Dalej się nie będę rozwodził na ten temat ale jest to dosyć trudne zagadnienie no i to forum jest o PHP a wątek dotyczy pluginów w PHP a nie pluginów w FF winksmiley.jpg


--------------------
www.web2biz.pl | trochę o web-usability
Go to the top of the page
+Quote Post

Posty w temacie
- Vengeance   Aplikacje PHP - Pluginy   9.08.2005, 12:42:33
- - NuLL   Co rozumiesz jako plugin ? Uniwersalnego API dla p...   9.08.2005, 19:51:47
- - Vengeance   Dla przykładu Blog który pisze teraz... Plugin, n...   9.08.2005, 19:55:37
- - ebe   Albo w formie koszyka do cms'a przekształcając...   9.08.2005, 20:37:50
- - Ace   jedyne co mi przychodzi do glowy, to kolejka. Dod...   9.08.2005, 21:49:33
- - treewood   W projekcie Quick.Cart wykorzystalismy takie mysle...   10.08.2005, 13:54:08
- - treewood   dodam jeszcze to, ze gdzies tu na forum ktos kiedy...   10.08.2005, 15:05:04
- - mynio   tutaj jest coś o pluginach http://www.phpdeveloper...   17.08.2005, 19:39:04
- - ennics   CytatGdybym mial gwarancje, ze kod php nie bedzie ...   5.10.2005, 13:37:03
- - Diwi   Tak więc lekko odświeże temat. Czy komuś udało się...   29.10.2005, 14:37:09
- - Ociu   Obejrz sobie wtyczki w dotclearze. pozdrawiam   30.10.2005, 11:57:11
- - evo   polecam system pluginow rozwiazany w eclipse. Prze...   14.11.2005, 22:50:51
- - Ociu   Ja myśle, że nie będe używał żadnych BBCode (taką ...   15.11.2005, 15:37:50
- - bela_666   Ociu, ok, ale załadowałeś i co teraz zrobisz? Jak ...   15.11.2005, 16:41:09
- - Ociu   Przed chwilą prześmyślałem to co napisałem i stwie...   15.11.2005, 16:45:34
- - ActivePlayer   do tego dochodzą jeszcze zaleznosci... bo mamy np....   19.11.2005, 20:33:41
- - Degregar   Pracuję właśnie nad framework'iem, w którym ma...   21.11.2005, 14:46:00
- - seaquest   A ja myślę, że trzeba trochę połączyć wszystkie te...   21.11.2005, 21:46:26
- - Ace   hm, mysle ze to jest sensowne, ale w chwili obecne...   22.11.2005, 09:40:58
- - Vengeance   A co jeśli chcemy napisać plugin do pluginu będące...   22.11.2005, 15:37:41
- - Ociu   Cytat(Vengeance @ 2005-11-22 16:37:41)A co je...   22.11.2005, 19:02:13
- - LBO   Cytat(Vengeance @ 2005-11-22 14:37:41)A co je...   27.12.2005, 20:54:54
- - Ociu   A co jeśli pluginem jest wybieraniem odpowiedniej ...   27.12.2005, 21:08:39
- - sztosz   Cytat(Vengeance @ 2005-11-22 16:37:41)A co je...   27.12.2005, 21:31:39
- - NuLL   Ja pluginy w swoich aplikacjach rozwiazuje w inny,...   27.12.2005, 21:35:48
- - LBO   Cytat(Ociu @ 2005-12-27 20:08:39)A co jeśli p...   28.12.2005, 18:19:40
- - em1X   Uniwersalnego sposobu mysle nie ma. Ostatnio robil...   28.04.2006, 20:00:11
- - nasty_psycho   Mi sie udalo napisac system do obsugi pluginow w m...   27.05.2006, 12:39:34
- - Ociu   Myślę, że ta metoda nadaje się lepiej do flitrów n...   27.05.2006, 17:05:12
- - erix   ja robie w ten sposob: Dajmy na to jest klasa ...   28.05.2006, 21:19:32
- - NuLL   Ktos korzysta z wlasnych silnikow pluginowych w wa...   29.05.2006, 00:05:00
- - g00fy   mi podoba sie polaczenie Visitora z Componentem. l...   1.06.2006, 20:18:08
- - NuLL   Cytatmi podoba sie polaczenie Visitora z Component...   23.06.2006, 14:55:49
- - anas   Hej. Myślę że tutaj z pomocą ...   28.06.2006, 12:08:19
- - UDAT   Ostatnio zastanawiam nad użyciem AOP w celu u...   24.03.2007, 19:32:47
- - webik   Witam Cytat(anas @ 28.06.2006, 11:08...   29.03.2007, 12:37:43
- - darektbg   W Rapide jest to ciekawie zrobione, możliwe są czt...   1.04.2007, 09:22:42
- - Strzałek   Hola, hola, powoli. Ale to co pokazałeś ...   2.04.2007, 14:21:08
- - Athlan   Imho @nasty_psycho już dobrze kombinuje: http...   3.04.2007, 16:39:38
- - LBO   Cytat(Strzałek @ 2.04.2007, 15:21:08 ...   4.04.2007, 10:37:25
- - Zeman   To ja też wtrące swoje 0,03 PLN. Na początek napi...   4.04.2007, 13:12:58
- - Athlan   CytatAle natłukłem tekstu, ciekawe czy komuś będzi...   6.04.2007, 08:34:47
- - Zeman   Cytat(Athlan @ 6.04.2007, 09:34:47 ) ...   6.04.2007, 10:53:11
- - faster   CytatTylko czy ktoś to będzie czytał... Witam, .....   15.04.2007, 22:44:14
- - Zeman   Cytat(faster @ 15.04.2007, 23:44:14 )...   15.04.2007, 23:18:06
- - yaotzin   Witam nie przeczytałem wszystkich postów bo nie ma...   3.05.2007, 20:44:09
- - Kasjan   witam, przepraszam ze odkopuje stare tematy, ale t...   14.10.2007, 18:05:10
- - NuLL   A co jesli chcesz operowac na jakis danych zawarty...   14.10.2007, 18:23:20
|- - Kasjan   Cytat(NuLL @ 14.10.2007, 18:23:20 ) A...   14.10.2007, 22:23:11
- - LBO   W większości przypadków wystarczają filtry, popart...   14.10.2007, 18:41:39
- - NuLL   Filtry ? To ja myslalem ze filtry sluza do czego i...   14.10.2007, 18:45:55
- - LBO   Nie czepiaj się, chodziło mi o powszechną implemen...   14.10.2007, 18:49:50
- - Cysiaczek   Z mojego punktu widzenia to sa po prostu akcje prz...   15.10.2007, 07:48:05
- - gamecreator   Najpierw trzeba by jedną rzecz doprecyzować: Są wt...   6.11.2007, 01:09:33
- - deirathe   skoro mowa o rozszerzeniach to czy widzicie jakieś...   20.11.2007, 15:58:49
- - splatch   Pokusiłem się o wklepanie odrobiny kodu....   20.11.2007, 22:07:10
- - Babcia@Stefa   Moje rozwiązanie jest takie: Archiwum (np. rar, z...   5.03.2008, 12:17:15
- - NuLL   @splatch - myslisz ze daloby sie to wykorzystac w ...   7.03.2008, 16:37:31
- - specialplan   Podepne sie, by nie zakladac nowego tematu. Od ja...   11.03.2008, 16:52:28
- - carbolymer   Jakiś czas temu naskrobałem sobie nawet dobry plug...   11.03.2008, 23:30:17
- - Sedziwoj   @specialplan A dlaczego interfejsu plugin'u ni...   12.03.2008, 09:56:37
- - specialplan   Klasa dziedziczaca po ReflectionClass sluzy jedyni...   12.03.2008, 10:19:59
- - LBO   Framework FLOW3 (który będzie służy...   13.03.2008, 16:27:13
|- - tuner   Cytat(LBO @ 13.03.2008, 15:27:13 ) Fr...   19.01.2010, 14:17:31
- - tmgryf   Troszke bardzo odkopię Może zle to wszystko zroz...   25.08.2009, 12:25:29
- - wlamywacz   Witam! Chciałbym zasięgnąć waszej rady odnośn...   25.01.2010, 12:57:44
- - marcio   CytatPoza tym myślę nad wprowadzeniem kolejki, dzi...   25.01.2010, 19:00:32
- - wlamywacz   Kolejka po to gdyż autoryzacja, logowanie itp. będ...   25.01.2010, 19:23:20
- - marcio   Moze ktos wytlumaczy jaka jest roznica pomiedzy ko...   26.01.2010, 00:13:18
|- - XianN   Cytat(marcio @ 26.01.2010, 00:13:18 )...   26.01.2010, 11:57:39
- - marcio   Musialbym to widziec w praktyce bo tak zabardzo ni...   26.01.2010, 13:55:07
- - wlamywacz   W serwisie istnieje akcja X oraz plugin Y,Z. Plugi...   26.01.2010, 15:23:39
- - marcio   EDIT: Zle zrozumialem o ta kolejke chodzi o to: ht...   26.01.2010, 15:44:43
- - Ormin   Wzorzec obserwatora i wszystko jasne   28.02.2010, 21:39:07
- - eai   Temat, pluginów zależy od struktury systemu do któ...   24.03.2010, 11:04:13
- - paxton   Cos takiego jest sprytne, moze nie jest to porzadn...   25.03.2010, 23:52:48
- - Psychopath   Ja robię to nieco inaczej. Dodatki dzielę na ...   11.04.2010, 16:35:33
- - marcio   Witam czy ktos z was na dzien dzisiejszy zaimpleme...   22.03.2012, 14:47:38
- - hind   Dla kazdego pluginu wydzieliłbym przestrzeń danych...   23.03.2012, 11:03:26
- - marcio   CytatDla kazdego pluginu wydzieliłbym przestrzeń d...   23.03.2012, 13:52:06
- - mrWodoo   generalnie pluginy opiera się na tzw hookach (tak ...   7.09.2012, 16:40:20
- - marcio   Hooki/Eventy uzywam do innych czynnosci, choc np 4...   8.09.2012, 15:13:32
- - mrWodoo   Chętnie bym zobaczył   8.09.2012, 17:56:42
- - marcio   Poczekaj jeszcze miesiac, postaram sie dokonczyc p...   14.09.2012, 23:43:31
- - mrWodoo   a jak wpływać na metody klas, np załóżmy, że mamy ...   9.09.2013, 15:11:36
- - hind   @mrWodoo: to chyba tylko przez hooki, i przed wrzu...   16.09.2013, 10:10:42
- - Crozin   @mrWodoo: Zdarzenia i jakiś sensowny event dispatc...   16.09.2013, 11:31:38


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

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2024 - 11:44