DbM Framework - Autorska aplikacja frameworka opartego na wzorcu MVC |
DbM Framework - Autorska aplikacja frameworka opartego na wzorcu MVC |
20.12.2023, 21:40:29
Post
#1
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Witajcie,
miałem chwilę i usiadłem do autorskiego frameworka opartego na wzorcu MVC. Chciałbym go dopracować, utworzyć wersje stabilną. Kod frameworka jest dostępny pod adresem: https://github.com/artimman/dbmframework Zakończyłem pierwszy test aplikacji na serwerze zdalnym - powodzeniem. Wydaje się, że już jest całkiem Ok i ciekawe, czy ktoś się ze mną zgodzi? -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
20.02.2024, 22:34:50
Post
#2
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
2. Ok i super.
1. Ach, dasz radę. Ten template jest light weight Nie jest tak jak piszesz, albo coś nie kumam. Zgodnie z tym co pisałem w template.php nie ma use DB nie ma też już use Interface, usunąłem tylko typowanie z funkcji function htmlUser($database, $sessionUserId, $module = null): string {} nigdzie nie było powiedziane, że każda funkcja musi mieć typowanie, więc jest oki. Wywołanie funkcji jest m.in. w navigation.phtml echo htmlUser($this->getDatabase(), $this->getSession('')); gdzie $this->getDatabase() jest w BaseController.php wstrzykiwane z interfejsu DatabaseInterface $database nie klasy DB (Database). Chyba, że chcesz, aby zamiast $database, dać jakąś tablice z danymi usera: id, login, avatar itd... No to akurat w przypadku tej funkcji "globalnej" (i używanej w różnych miejscach) jest mocno kłopotliwe, jeszcze nie wiem, ale raczej musiałby tu dodać jakiś nowy mechanizm, coś jak w Symfony -> TwigExtension, albo coś za dużo sobie wyobrażam i można prościej. Ale po co Extension itd. kiedy $this->getDatabase() idzie z interfejsu i załatwia sprawę?! 3. Czemu miałbym usuwać wartości defaultowe w interfejsie, które są w klasie - była informacja, że tak się przyjęło (no i mus, nie ma rady). Może tak, program działa bez tych wartości, ale nawet Visual podpowiada, że po usunięciu domyślnych wartości coś nie do końca zagrało z interfejsem i klasą. A piszesz, że lepiej jest dokładnie napisać interfejs zgodny z klasą też w defaultowych wartościach, co wbrew temu co się przyjęło będzie pomocne przed zonk'iem. Pomijając Visual Twoja informacja utwierdza mnie w przerkonaniu, że te defaultowe wartości powinny tam być, wiec zostawiam interfejs tak jak utworzyłem. Znalazłem jeszcze jedno TODO Kod private function paramType($value) { switch (true) { case is_null($value): return PDO::PARAM_NULL; break; case is_int($value): return PDO::PARAM_INT; break; case is_bool($value): return PDO::PARAM_BOOL; break; default: return PDO::PARAM_STR; } } Jak zapisać typowanie dla tej metody, spróbowałem z mixed, ale wówczas się sypie private function paramType(mixed $value): mixed ? Ten post edytował Malinaa 20.02.2024, 22:40:34 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
Wersja Lo-Fi | Aktualny czas: 20.09.2024 - 01:30 |