![]() |
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: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Cytat Dla kazdego pluginu wydzieliłbym przestrzeń danych (tak żeby dane z POST/REQUEST nie nachodził na siebie). np żeby plugin "a" miał nienachodzące się nazwy z pluginem "b" czy też samym głównym procesem -> $_POST['plugin_a']['nazwa_ankiety'], $_POST['main']['nazwa_newsa'] Stosuje konwencje ze w pluginach przed nazwami zmiennych daje "p" zeby nie kolidowaly ze soba. Cytat Dodać akcje przygotowawcze (pre) i wykończeniowe (post) tak, aby wywalić błędy i przerwać główny proces (jw. dodać newsa/komentarz), a potem przesłać pełny kontekst głównego procesu do pluginu aby dalej obsłużyć żądania (post) Cytat Problemem jest sam moment uruchomienia pluginu, czy ma być wczytywany zawsze (z konfiguracji), czy też doczytany w pewnym konkretnym momencie (uzupełnienie strony przez XHR?) Ja to robie tak ze plugin moze byc ladowany przed lub po komponencie, gdzie do akcji komponentu dolaczam akcje pluginu. Np majac akcje "readNews" do ktorej chce podczepic plugin comment mam taki config komponentu News, aktywuje plugin w bazie a config sprawdza tylko czy w ogole obiekt(w tym przypadku news) moze posiadac w ogole plugin comment:
Cytat W tym wypadku, główny proces nawet nie musi wiedzieć że będą uruchamiane jakieś pluginy, bo będą to akcje poboczne (tak jak w obserwatorze, podpiętym do danego typu zdażenia) Dokladnie akcje pluginu sa podpinane pod akcje komponentu i komponent do ktorego sa podpinane nie ma z plugin'em nic wspolnego |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 03:50 |