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.
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. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 1 Dołączył: 14.02.2009 Ostrzeżenie: (0%)
|
Troszke bardzo odkopię (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif) i dla tego sie chcialem spytac co o tym sadzicie? |
|
|
|
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
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 ![]() ![]() |
|
Aktualny czas: 4.12.2025 - 15:43 |