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
tmgryf
post 25.08.2009, 12:25:29
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 14.02.2009

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


Troszke bardzo odkopię smile.gif

Może zle to wszystko zrozumialem, ale wiekszosc opisanych sposobow wtyczkowania mozna by prosto zastapic prostym wstawieniem include przed wyświetleniem odpowiedniej trsci...

myslalem sobie zeby podzielic strone na minisekcje (w gruncie rzeczy calkiem sporo ich by musialobyc) - np 'htmlheader', 'pageheader', 'menu', 'leftcolumn', leftcolumncontent' 'rightcolumn'.... 'gallerylist' 'galleryimagelist'... itd i trzymanie ich w zmiennych. Dalej wykorzystujac "hooki" (http://stackoverflow.com/questions/42/best-way-to-allow-plugins-for-a-php-application) dla kazdego z elementow wykonywac odpowiedniego hooka lekko go modyfikujac wzgledem tego artykulu.

I tak mamy atrzymalibysmy tablice sekcji sekcje[sekcja] oraz dwuwymiarowa tablice hookow w postaci plugin[sekcja][funkcja z hooka1,funkcja z hooka2...] no i pozniej cos w rodzaju:
foreach (sekcje => element)
if isset plugin[element]
foreach plugin[element] => funkcja)
funkcja();


Zastanawialem sie rowniez jakby mozna bylo to zoptymalizowac - konieczne byloby "cachowanie kodu wtyczek php" tzn - wtyczki mozna byloby wlaczac i wylaczac - po wlaczeniu wtyczki tworzony bylby plik cacheplugin.php zawierajacy "body" plikow wlaczonych wtyczek - ograniczyloby to zbedne przeszukiwanie katalogow w poszukiwaniu wtyczek do inicjowania i otwierania tych calych mas plikow.

A zeby wtyczki staly sie naprawde wtyczkami uzytkownik dostalby narzedzie do tworzenia wlasnych minisekcji poprzez np dodanie odpowedniego kodu cos ala template {#zrobmigalerie#} i tutaj pojawi sie problem rekurencji bo należałoby po kazdym odpaleniu wtyczki dla danej minisekcji odpalic cala liste od nowa bo moze sie okazac ze ostatnia wtyczka doda sekcje do ktorej dedykowana byla pierwsza opalona funkcja... ale mysle ze to juz bardziej problem implementacji calosci

Chcę to napisac smile.gif i dla tego sie chcialem spytac co o tym sadzicie?
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.06.2024 - 16:20