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
|
|
|
5.02.2024, 22:59:20
Post
#2
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
1. modele niech nie dziedziczac po DatabaseClass tylko niech przyjmuja w konstuktorze obiekt DatabaseClass i go uzywaja 2. obiekt DatabaseClass tworzysz raz w index.php i potem przekazujesz w konstruktorach dalej. 3. np do FrameworkClass, ktore potem w metodzie model() nie przekazuje obiekt DatabaseClass do konkretnych modeli. Zacząłem od początku od pliku index.php tu nie spodobało mi się poprzednie: ### RENDER PAGE ### use Dbm\Classes\RoutClass; new RoutClass(); Sprawdziłem co tam kiedyś napisałem w wersji 1 i nie maiłem routes, tylko taką sprytna metodę. Dopisuję routing, ale po drodze stwierdziłem, że całość jest do przerobienia: struktuira katalogów i po kolei, przy okazji zmieniłem te Class na bez Class, bo tak chciałeś (mi to nie przeszkadzało, wydawało się, że podobnie jak NameInterface tak też NameClass to nie problem, a chociaż od razu widać, że to np. nie AbstractClass, czy coś jeszcze innego mniejsza o to teraz jest bez i jest OK). Teraz zamiast powyższego w pliku index.php mam ### ROUTER ### $routes = require(BASE_DIRECTORY . 'application' . DS . 'routes.php'); $routes(); Pytanie, czy tak jest dobrze? 1. modele niech nie dziedziczac po DatabaseClass tylko niech przyjmuja w konstuktorze obiekt DatabaseClass i go uzywaja Wcześniej bez zmiany na $routes nie można było nic do konstruktora w modelach wstrzyknąć po dodaniu kodu __construct() wysypywało się. 2. jak z pliku index.php przekazać Database w konstruktorach? 3. zamiast FrameworkClass jest AbstractController, - zmieniłem tu stary pomysł na modele bez możliwości używania konstruktora - teraz można wstrzykiwać w modelach. Mamy plik index.php (w katalogu public) w przeglądarce otwieram stronę główną, obsługuje ją klasa IndexController (src/Controller/) tu nadal coś jest nie tak, nie mogę wstrzyknąć do konstruktora Kod /* * TODO! public function __construct(Database $database, Translation $translation) // TODO! Wstrzykiwanie do konstruktora!? */ public function __construct() { $database = new Database; $model = new BlogModel($database); $this->model = $model; $translation = new Translation(); $this->translation = $translation; } w powyższym konstruktorze jest model, no udało się tu poukładać kod i wstrzykuje Plik BlogModel (src/Model) Kod public function __construct(Database $database) { $this->database = $database; } Czy tak jest ok, bo coś nie czuje jak to jest z tym połączeniem, aby mieć jedno? Pozostał przykładowy IndexController wstrzykiwanie do konstruktora, a do metod, czy też? No i dalej abstract klasy, interfejsy, fabryki, I tyle, więcej nie pamiętam. Zaproponowane DI będę chciał się zająć, ale w pierwszej kolejności chciałbym dobrze poskładać całość bez Composera i gotowców. Ten post edytował Malinaa 5.02.2024, 23:09:33 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
Wersja Lo-Fi | Aktualny czas: 24.09.2024 - 16:34 |