Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pluginy i moduły po raz n.
ZuyPan
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 4
Dołączył: 4.02.2010

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


Witam wszystkich.
Od razu zaznaczę - sporo czytałem na temat mojego problemu zarówno na tym forum jak i po różnych wygoglowanych stronach, jednak nie znalazłem czegoś co pasuję do mojego problemu. Przyszedł moment na mój własny CMS i pojawił się znany Wam problem - pluginy i moduły. Zacznijmy od podstaw - rozumienie przeze mnie tych dwóch pojęć aby nie było nieporozumień:
plugin - mała zmiana w działaniu strony jak np. dodanie możliwości komentowania profilu innej osoby na portalu lub oceniania go, kalendarz, bbcode.
moduł - to coś "większego" jak np. moduł sklepu lub moduł forum.
Ważne jest aby pluginy umiały się wpasować w odpowiednie miejsce tam gdzie powinny się wyświetlać - boczny panel (oczywiście możliwość ustawienia czy dajmy na to pod menu a może nad nim - wszystko to z poziomu panelu administratora) lub środek profilu użytkownika (wspomniane komentarze lub oceny).
Sporo czytałem o jądrze systemu i wydaje mi się, że to właśnie w tym miejscu powinno się odbywać wczytywanie ewentualnych pluginów i modułów. Wszystko wsparte było by bazą danych w której przechowywany by był stan pluginu/modułu (zainstalowany/nie zainstalowany, włączony/wyłączony). Jakieś pomysły jak to rozwiązać? Jeśli to jakoś pomoże lub naprowadzi Was na odpowiedni tor myślenia to przedstawię zarys projektu jądra:
1. Wczytanie pliku konfiguracyjnego
2. Wczytanie ustawień z mysql
3. Język strony
4. Ewentualne pluginy, moduły
5. Wczytanie ewentualnej podstrony, treści etc.
6. Wczytanie templatu

Nie mam pojęcia jak to rozwiązać dlatego zwracam się do Was. Po raz kolejny przypominam, że czytałem sporo na ten temat, ale tam wszystko rozwiązane jest obiektowo, a ja pomimo nauki jednak chyba nadal wolę strukturalny sposób. Proszę o rady (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Ja stosuję np. nie pluginy i moduły, ale moduły i panele, moduły generują treść dynamiczną a panele to treść statyczna (by łatwo coś gdzieś umieścić). Radziłbym Ci zacząć od decentralizacji, czyli każdy moduł:
- ma własne modele danych
- własny silnik
- własne widoki

Nawet za cenę powielania znacznych ilości kodu z CMSa. Potem wystarczy przechwycić zmienną/zmienne, które ten moduł generuje i umieścić w swoim widoku/szablonie/szablonach etc:
  1. <p>
  2. {pogoda}
  3. </p>


Integracja odbywa się poprzez PA CMSa, gdzie dodaje się informacje o module, podaje link do pliku php z kodem tego modułu, nazwę zmiennej (która będzie dostępna w naszych szablonach) oraz link do PA tego modułu.

Decentralizacja ułatwia install/deinstall i wpływa dobrze na wydajność (moduł jest includowany tylko wtedy, kiedy jest wymagany na danej stronie), ma to też tą zaletę, że jako moduł mogę wrzucić niemal każdy skrypt albo użyć swojego modułu w innym silniku lub jako samodzielnego skryptu.

Inna sprawa to tak zwane rozszerzenia (ang. extensions), które po prostu rozszerzają funkcjonalność systemu o nowe bzdety i są z nim ściśle zintegrowane, tutaj wszystko zależy od głównego silnika i praktycznych przykładów, bo rozszerzenia mogą się np. uzupełniać lub wykluczać. Często integracja i instalacja tych rozszerzeń jest tak skomplikowana, że czyni je praktycznie bezużytecznymi (np. nowa wersja głównego silnika powoduje jego zatarcie po instalowaniu rozszerzenia, który tego nie uwzględniał).

Jak sobie zrobisz, tak będziesz miał, w wypadku rozszerzeń odradzam jakąś sztywną koncepcję a zamiast tego zalecam pełną integrację z opcją on/off danego bzdetu, jeśli klient chce nowej funkcji to mu ją napiszemy a system zmieniamy na dedykowany, inaczej nasz silnik nie udźwignie ogromu pluginów.
Go to the top of the page
+Quote Post

Posty w temacie
- ZuyPan   Pluginy i moduły po raz n.   11.08.2010, 15:51:37
- - erix   CytatPo raz kolejny przypominam, że czytałem sporo...   11.08.2010, 16:25:04
- - ZuyPan   oh sporo tego było. Wymienianie wszystkiego wymaga...   11.08.2010, 16:35:37
- - erix   No i czego nie rozumiesz? CytatSama obiektówka ch...   11.08.2010, 16:40:42
- - ZuyPan   No właśnie tego jak to zrobić strukturalnie Nigdy...   11.08.2010, 16:45:44
- - erix   Cytatnie jestem pewny zasady na jakiej to powinno ...   11.08.2010, 16:58:44
- - ZuyPan   Z tego co rozumiem to z tymi hookami to musiał bym...   11.08.2010, 17:17:02
- - erix   Po prostu w każdej wtyczce, jako głównego wyzwalac...   11.08.2010, 19:03:50
- - ZuyPan   W takim razie tu gubię podstawowe pojęcie wtyczki,...   11.08.2010, 19:15:44
- - erix   Cytatna to, że projektując cały serwis muszę przew...   11.08.2010, 19:44:27
- - ZuyPan   No to teraz mój post ;> Prosty przykład - mały ...   11.08.2010, 20:15:36
- - erix   CytatCzy to oznacza, że kolejne sekcje i skrypty m...   11.08.2010, 20:19:21
- - ZuyPan   Puki co nic innego strukturalnie nie umiem napisać...   11.08.2010, 20:22:09
- - Pilsener   Ja stosuję np. nie pluginy i moduły, ale moduły i ...   11.08.2010, 21:21:13
- - ZuyPan   Rozwiązanie świetne, ale nie pasuje do mojego cms...   12.08.2010, 09:02:22
- - erix   CytatTeraz tylko znów męczy mnie ta obiektówka :/ ...   12.08.2010, 10:22:21
- - ZuyPan   No to chyba mamy sprawę zamkniętą Zastosuję te ho...   12.08.2010, 10:28:24
- - thek   Ja osobiście myślę, że najwygodniejszy byłby dla u...   12.08.2010, 11:06:57
- - erix   Masz na myśli widgety? Ale tu chodzi bardziej o w...   12.08.2010, 11:53:03
- - Pilsener   Otóż to, świetny przykład z tym BBCode, trudno to ...   12.08.2010, 21:09:18
- - ZuyPan   Pilsener tak czytam Twój post i wpadłem na pomysł ...   12.08.2010, 21:21:04
- - erix   Cytatale zakładam, że każda wtyczka musiała by gdz...   12.08.2010, 21:52:04
- - ZuyPan   [PHP] pobierz, plaintext add_action('post_publ...   12.08.2010, 21:54:14
- - erix   No ja tym bardziej, chyba że nie zrozumiałem, co c...   12.08.2010, 21:56:19
- - ZuyPan   Raczej to ja się pogubiłem, a to co Wy piszecie je...   12.08.2010, 22:00:15
- - thomson89   Ja u siebie rozwiązałem ten problem bardzo prosto....   12.08.2010, 22:42:12
- - erix   ~thomson89, chyba nie zrozumiałeś. Nie chodzi o ...   13.08.2010, 12:17:11
|- - thomson89   Cytat(erix @ 13.08.2010, 13:17:11 ) ~...   13.08.2010, 18:30:57
- - thek   Jak dla mnie jedyne sensowne wyjście to w szkielec...   13.08.2010, 12:59:03
- - ZuyPan   Zawsze też uśmieszki mogą rozszerzać bbcode... W k...   13.08.2010, 13:27:59
- - Crozin   Tak się zastanawiam... AOP mogłoby chyba być całki...   13.08.2010, 13:43:16
- - thek   ZuyPan. Mylisz się... A co jeśli smileye wystąpią ...   13.08.2010, 13:47:10
- - ZuyPan   Czekaj czekaj. Nie do końca rozumiem Twojego przyk...   13.08.2010, 14:24:25
- - Crozin   Adres URL może zawierać w sobie ciąg " : D ...   13.08.2010, 14:28:48
- - ZuyPan   Ok teraz rozumiem. To fakt, byłby problem. W takim...   13.08.2010, 14:35:01
- - thek   Nie tylko hierarchię by trzeba ustawić, ale tak na...   13.08.2010, 14:58:27
- - SHiP   Jeśli chodzi o implementacje haków to ja bym to zr...   13.08.2010, 18:49:45
- - ZuyPan   Poddaje się. Albo nie umiem korzystać z google (bo...   13.08.2010, 18:57:54
- - thomson89   Jest chyba rozwiązanie pośrednie, między hookami a...   13.08.2010, 19:20:41
- - erix   CytatTo można to załatwić tak, że kod sprawdza czy...   13.08.2010, 19:34:28
- - ZuyPan   Erix liczyłem raczej na jakiś kurs albo coś. Przyz...   13.08.2010, 22:33:31
- - erix   Kursów nt. stosowania pluginów w aplikacjach jest ...   13.08.2010, 22:38:51
- - ZuyPan   I understand many of sentences in english Ale z ...   13.08.2010, 22:49:39
- - thek   Hook to określone miejsce w kodzie aplikacji/klasy...   13.08.2010, 23:12:56
- - CuteOne   Dawniej przy pisaniu aplikacji obsługującej PITy w...   14.08.2010, 06:06:04
- - marcio   Modularnosc HMVC poczytajcie kto nie wie o co kam...   14.08.2010, 16:33:10
- - Crozin   @marcio: Twój sposób nie sprawdzi się w momencie g...   14.08.2010, 16:53:42
- - erix   CytatJa mam to wlasnie za pomoca zdarzen proste pr...   14.08.2010, 18:36:42
- - marcio   Cytat(Crozin @ 14.08.2010, 17:53:42 )...   14.08.2010, 19:25:10


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

 



RSS Aktualny czas: 7.10.2025 - 02:02