![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy to dobry dział.
Czytałem dziś od rana pełno tekstów/dyskusji na temat wzorów projektowych, pisania cms/frameworków. Lecz dalej nie wiem jak "ugryźć" tematykę pisania np. swojego cms. Do tej pory wszystkie moje projekty, były oparte o różne klasy (oczywiście mojego autorstwa) które dawały wynik (stronę). Skończyły mi się pomysły i teksty w internecie, których bym nie przeczytał. Jakie założenia stawiałbym przy pisaniu cms?
Dokładnie to co mu się podoba, chciałbym zrobić system pluginów/dodatków, które mógłby sobie sam pobrać i zainstalować. Nie wiem nadal jak rozwiązać sprawę "komunikacji" klas między sobą. Zastanawiałem się nad napisaniem jądra/kernela (była dyskusja o tym na php.pl), lecz nie mam zielonego pojęcia jakby miał działać. Jak moim zdaniem wyglądać miałoby jądro i za co byłoby odpowiedzialne ?
Pyt: Kiedy i gdzie będą mi potrzebne? Odp: Wszędzie tam gdzie powstanie błąd uniemożliwiający dalsze działanie skryptu(ów). Moim zdaniem, "łapanie" wyjątków nie zawsze jest proste i wygodne. Chciałbym wiedzieć jak Wy rozwiązujecie te (może) banalne problemy. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 6 Dołączył: 21.03.2009 Skąd: Obecny :) Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy to dobry dział. Czytałem dziś od rana pełno tekstów/dyskusji na temat wzorów projektowych, pisania cms/frameworków. Lecz dalej nie wiem jak "ugryźć" tematykę pisania np. swojego cms. Do tej pory wszystkie moje projekty, były oparte o różne klasy (oczywiście mojego autorstwa) które dawały wynik (stronę). Skończyły mi się pomysły i teksty w internecie, których bym nie przeczytał. Jakie założenia stawiałbym przy pisaniu cms?
Dokładnie to co mu się podoba, chciałbym zrobić system pluginów/dodatków, które mógłby sobie sam pobrać i zainstalować. Nie wiem nadal jak rozwiązać sprawę "komunikacji" klas między sobą. Zastanawiałem się nad napisaniem jądra/kernela (była dyskusja o tym na php.pl), lecz nie mam zielonego pojęcia jakby miał działać. Jak moim zdaniem wyglądać miałoby jądro i za co byłoby odpowiedzialne ?
Pyt: Kiedy i gdzie będą mi potrzebne? Odp: Wszędzie tam gdzie powstanie błąd uniemożliwiający dalsze działanie skryptu(ów). Moim zdaniem, "łapanie" wyjątków nie zawsze jest proste i wygodne. Chciałbym wiedzieć jak Wy rozwiązujecie te (może) banalne problemy. Jeżeli chodzi o komunikację to wydaje mi się źe mugłbyś zadeklarować metodę bądź funkcję typu checkExist($Nazwa); - Która pobiera z bazy danych występowanie danego modułu i ewentualne odniesienie się do jego strony. Jeżeli np: Miałbyś każdy moduł w osobnym katalogu i wiadomo że w każdym z modułów jest plik "index.php" to mógłbyś stworzyć strukturę danych posobną do tej: CODE SQL: CREATE TABLE `Moduly`(`id` integer NOT NULL PRIMARY KEY, `nazwaModulu` varchar(20), `katalogRoboczy` varchar(20), versja varchar(5)); teraz możesz za każdym wywołaniem funkcji sprawdzić i ewentualnie pobrać lokalizację pliku "index.php" a nawet zaimplementować funkcję sprawdzającą czy dana wersja modułu jest obsługiwana przez aktualną wersję twojego "modułu głównego" CMS. możesz równierz zaimplementować serię stałych rozkazów w twoich klasach które one wykonją i przekazywać te rozkazy za pośrednictwem sesji $_SESSION albo ciastek $_COOKIE. Powiedzmy że każdy z modułów obsługuję taką metodę jak "lista();" a każdy moduł robi inne rzeczy np :listuje użytkowników, listuje obrazy w galerji itp. Wystarczy że umieścisz zmienną $_SESSION["ORDER"]="LIST'; i wywołasz odwołanie do pliku index.php innego m,odułu. Wtedy możesz zrobić coś w stylu: CODE switch($_SESSION["ORDER"]){ case "LIST": {$klasa->metoda_wyswietlania_listy();}break; }//end of switch Podobnie ja robię przy moich CMS'ach, ale możliwe że są o wiele prostsze metody (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 19:59 |