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
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
na to, że projektując cały serwis muszę przewidzieć i niejako zdecydować w którym miejscu dać możliwość podpinania się wtyczek.

Zobacz, że w każdej aplikacji oferującej rozszerzenia/wtyczki jest tak samo - albo hooki, które są wykonywane w odpowiednich momentach, albo wstrzykiwanie kodu bezpośrednio w odpowiednie miejsca. Nie wiem na 100%, jak jest w np. w Firefoksie, ale podejrzewam, że bardzo podobnie.

Cytat
A nie da się tego jakoś rozwiązać w sposób bardzo automatyczny?

Chcesz sobie aplikację wyklikać albo żeby sama to wymyśliła? To po co programować? Gdyby się tak dało, to wątpię, aby były rozwijane języki programowania/inżynieria tworzenia aplikacji. (IMG:style_emoticons/default/tongue.gif)

Cytat
Aby wtyczki w jakiś tam sposób rozpoznawały co to za część strony a nie tak jak Wy mi proponujecie (a ja to rozumiem:)

No a jak sobie wyobrażasz wtyczkę, która np. dodaje Ci funkcję formatowania treści stron przez markdown? Gdzie się wepnie? Albo - na chama - wstrzyknie swój kod do rdzenia skryptu (tak jest w SimpleMachines forum), albo doda odpowiedniego hooka, który da znać wtyczkom e, panowie formatujący tekst, wystąp, jest <TO I TO> do przeparsowania, czekam na wynik, zwracam go do skryptu.

O ile pierwsze rozwiązanie jest dużo wydajniejsze (nie ma konieczności odpytywania funkcji przechowującej odwołania do wtyczki), to jest bardziej problematyczne w utrzymaniu porządku i powoduje nieraz sporo konfliktów, czy uniemożliwia instalację innych wtyczek realizujących swoje funkcje w tym samym miejscu.

A jak masz odpowiednie hooki, to tak, jakbyś miał firmę przewozową i chciał kilkoma usługami oznaczać paczki. (koloryzując (IMG:style_emoticons/default/tongue.gif) ) jeśli oferujesz każdemu klientowi możliwość znakowania wszystkich swoich paczek własnymi identyfikatorami, robisz dla nich miejsce przy taśmie, oni rozpoznają swoje i doklejają do przesyłki. Ale mają tam swoje miejsce - paczki będą jechały dalej nawet jeśli delikwenta nie ma.

Jeśli nie masz, no to jest problem - trzeba kombinować, bo nie wiadomo, gdzie postawić tego klienta, żeby mógł swobodnie i bezpiecznie znakować swoje przesyłki.
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: 2.10.2025 - 00:41