Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> DbM Framework - Autorska aplikacja frameworka opartego na wzorcu MVC
Malinaa
post 20.12.2023, 21:40:29
Post #1





Grupa: Zarejestrowani
Postów: 544
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Malinaa
post 17.02.2024, 00:06:00
Post #2





Grupa: Zarejestrowani
Postów: 544
Pomógł: 6
Dołączył: 21.07.2008

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


Cytat(viking @ 14.02.2024, 09:24:11 ) *
Zaczynając od php 8.0 wszystkie parametry required muszą być zdefiniowane pierwsze.


Nie inaczej required są pierwsze.

W przykładzie ostanie false mogło być mylące, dokładnie całość w interfejsie chciałem dać tak:

public function queryExecute(string $query, array $params, bool $reference): bool;

gdzie tylko $query jest required (jeden pierwszy argument)

ale wówczas np. w BlogModel.php Visual pokazuje chmurkę, że nie widzi wszystkich argumentów

dlaczego wyskakuje chmurka - ponieważ w BlogModel.php jest construct z DatabaseInterface i po zmianie na siłę trzeba wrzucać w metodę false
a chyba nie po to był pisany interfejs, aby w konstruktor wstrzykiwać klasę Database, albo w metodę nie wymagane false/true? Jak to napisał wcześniej Salvation.


Cytat
Jak zrobisz to w ten sposób co proponujesz...


Zmieniłem na sposób, który zaproponowałeś, bo "tak się przyjęło"... i elegancko. Aplikacja działa; kłopot, że w Visualu świeci na czerwono.

Kod jest dostępny. Jak nie ma kodu, to podaj kod, kiedy jest kod to nie można do niego zajrzeć?
Coś tu nie rozumiem.

Może lepiej podam kod krok po kroku, bo chyba można ten kod ze sobą "pogodzić".

Klasa Database.php

Kod
public function queryExecute(string $query, ?array $params = [], bool $reference = false): bool
{
...
}


Interfejs DatabaseInterface.php był tak samo jak w klasie, ale chcemy, aby był tak:

Kod
public function queryExecute(string $query, array $params, bool $reference): bool;
{
...
}


i ok, zmieniam na powyższy - aplikacja działa, teoretycznie wszystko ok, ale przechodzę do
modeli, np.: BlogModel.php -> Visual wyświetla chmurkę -> brakuje argumentów w metodzie queryExecute()

I tutaj jest problem, no ale w konstruktorze miałem: public function __construct(DatabaseInterface $database) -> brak zgodności więc Visual świeci na czerwono,
no dobrze, ale generalnie nie ma problemu zmieniam konstruktor na:

Kod
public function __construct(Database $database)
{
...
}


i wszystko działa, w Visualu też wszystko jest na zielono, ok.

Przy czym w kontrolerach np. BlogController.php w konstruktor wstrzykiwany jest interfejs

Kod
public function __construct(DatabaseInterface $database)
{
...
}



Pytanie, czy tak jest dobrze, że mając interfejs w konstruktor modeli wstrzykuję klasę Database nie interfejs DatabaseInterface,
ewentualnie jak prawidłowo pogodzić te klasy i metody z klasą Database i interfejsem DatabaseInterface?
Tutaj coś nie wiem, które rozwiązanie jest dobre.
Czy w modelach może tu być w konstruktorze Database zamiast DatabaseInterface, bo ta zamiana rozwiązuje problem wyświetlania przez Visual chmurki z info o brakujących argumentach metody.

Chciałbym ogarnąć jeszcze miejsca w kodzie, gdzie zostało dodane TODO!
I trafiam na taką funkcje, która to była jako tymczasowa dla szablonów i jest powiązana z Database, które jak widać z powyższego jeszcze szwankuje.

plik template.php

Kod
// TODO! Temporary function
use Dbm\Classes\Database;

function temp_htmlUser($sessionUserId, $module = null, $tempPath = null): string
{
    $database = new Database(); // TODO!
    ...
}


Jak to zrobić, aby było ok dla szablonów, w których chciałbym mieć tylko funkcje do obsługi szablonu, np. path() itp. gdzie temp_htmlUser() wymaga połączenia z bazą danych?

Ten post edytował Malinaa 17.02.2024, 00:10:17


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post

Posty w temacie
- Malinaa   DbM Framework - Autorska aplikacja frameworka opartego na wzorcu MVC   20.12.2023, 21:40:29
- - nospor   ok, to na plus: + znajomosc jako tako klas + uzywa...   21.12.2023, 09:42:45
- - Malinaa   Dzięki bardzo za sprawdzenie kodu. Narzędzia były...   21.12.2023, 11:36:53
- - nospor   phpstan sprawdza innego rodzaju rzeczy wiec poleca...   21.12.2023, 11:52:58
- - Malinaa   KodNa tym to wlasnie polega a ty tego nie rozumies...   21.12.2023, 12:51:47
- - nospor   A ,teraz kumam do czego piles piszac te "rado...   21.12.2023, 12:59:22
- - netir   Jak zobaczyłem w model raw query bez bindowania to...   26.12.2023, 16:02:56
- - Malinaa   Cytat(nospor @ 21.12.2023, 09:42:45 )...   28.12.2023, 16:04:08
- - nospor   ad1) Nie widzi klasy App\Config\Constant...   29.12.2023, 22:02:12
- - Malinaa   1. Jak sprawić, aby widział klasę App\Config...   8.01.2024, 09:20:34
- - nospor   ad1 Klasy maja byc widoczne w autoloading i wtedy ...   8.01.2024, 10:11:34
- - Malinaa   1. Klasa przeniesiona i widoczna - całość bez błęd...   8.01.2024, 13:28:12
- - nospor   Cytatale to powinno być po prostu super dobrze. Z ...   8.01.2024, 14:27:04
- - Malinaa   CytatZ jednej strony nalegasz na super dobrze, a z...   9.01.2024, 13:01:28
- - nospor   NIe wiem o co ci chodzi z zmiennymi globalnymi w S...   9.01.2024, 14:16:56
- - Malinaa   Z protected static $connect to takie zakombin...   9.01.2024, 20:07:04
- - nospor   CytatZ protected static $connect to takie zak...   10.01.2024, 09:55:45
- - viking   https://github.com/artimman/dbmframework/bl...conf...   10.01.2024, 12:22:37
- - Malinaa   Cytat(nospor @ 10.01.2024, 09:55:45 )...   11.01.2024, 11:55:06
|- - viking   Cytat(Malinaa @ 11.01.2024, 11:55:06 ...   11.01.2024, 12:39:55
- - nospor   CytatPodejście pragmatyczne w programowaniu, brzmi...   11.01.2024, 12:03:10
- - Malinaa   Cytat(nospor @ 11.01.2024, 12:03:10 )...   11.01.2024, 12:36:08
- - Malinaa   Cytat(viking @ 11.01.2024, 12:39:55 )...   11.01.2024, 13:19:54
- - viking   Przeczytać przeczytałem ale napisałem dlaczego to ...   11.01.2024, 13:33:16
- - Malinaa   Rozumiem, mimo to chciałbym opracować mechanizm (w...   11.01.2024, 14:01:52
- - viking   To na początek ja bym spróbował ogarnąć temat z kt...   11.01.2024, 14:32:23
- - Malinaa   Wydawało mi się, że takie powszechne rozwiązanie j...   11.01.2024, 22:42:39
- - com   Malinaa musisz sobie postawić zasadnicze pytanie p...   18.01.2024, 14:49:35
- - Malinaa   Cytat(viking @ 11.01.2024, 14:32:23 )...   18.01.2024, 21:38:13
|- - Salvation   Cytat(Malinaa @ 18.01.2024, 21:38:13 ...   23.01.2024, 10:21:20
- - Tomplus   Ja osobiście rozumiem dlaczego ktoś tworzy i stosu...   24.01.2024, 09:31:42
- - Malinaa   Mam chwilę, więc usiadłem do projektu. Dependency ...   27.01.2024, 20:29:21
- - viking   Kontroler to generalnie nie jest miejsce na wciska...   29.01.2024, 11:42:03
- - Malinaa   Cytat(viking @ 29.01.2024, 11:42:03 )...   2.02.2024, 22:57:21
- - viking   Musisz się w końcu zdecydować. Robisz to żeby się ...   3.02.2024, 15:34:29
- - Malinaa   Cytat(viking @ 3.02.2024, 15:34:29 ) ...   3.02.2024, 21:54:10
- - viking   Wstrzykiwanie zależności a menedżer (albo service ...   4.02.2024, 06:53:24
- - Malinaa   Kilka konkretnych informacji się pojawiło. Dzięki....   4.02.2024, 10:05:54
- - nospor   skoro tak bardzo nie chcesz uzywac DI co ci zaprop...   4.02.2024, 20:07:12
- - Malinaa   Cytat(nospor @ 4.02.2024, 20:07:12 ) ...   5.02.2024, 22:59:20
- - nospor   Niby sluchasz co sie do ciebie mowi ale jednoczesn...   6.02.2024, 09:31:42
- - Malinaa   Jeżeli słucham to jak mogę nie słuchać. Rozumiem, ...   6.02.2024, 10:37:49
- - nospor   No masz dalej dodawac w dol te $database ...   6.02.2024, 11:14:14
- - Malinaa   Dotąd już miałem $router = new Router($d...   6.02.2024, 11:48:20
- - nospor   zajebisty opis problemu: bo sie sypalo.. Jak masz ...   6.02.2024, 12:14:57
- - Malinaa   Dobrze, że pokazałeś palcem, bo nie mogłem tego zn...   6.02.2024, 15:18:56
- - nospor   Cytatale przy zaktualizowanym kodzie w index.php j...   6.02.2024, 15:26:07
- - Malinaa   No, aż mi głupio, ale jeszcze nie mogę uwierzyć, ż...   6.02.2024, 16:22:25
- - nospor   nie aż dochodzę do modelu BlogModel public functi...   6.02.2024, 16:29:49
- - Malinaa   Po zmianie w __construct() Message: Cannot use ...   6.02.2024, 16:57:05
- - nospor   sorki, mialem na mysli kontrollery a nie model. c...   6.02.2024, 17:22:18
- - Malinaa   Aha, czyli dodać tylko linijkę: parent::__construc...   6.02.2024, 18:50:18
- - nospor   CytatOk, po zmianie został jeszcze routing, takie ...   7.02.2024, 10:47:34
- - com   RE: DbM Framework - Autorska aplikacja frameworka opartego na wzorcu MVC   7.02.2024, 15:09:08
- - Malinaa   Cytat(nospor @ 7.02.2024, 10:47:34 ) ...   8.02.2024, 11:44:53
- - nospor   CytatInterfejsy. No to od czego zaczniemy? smile.g...   8.02.2024, 12:24:30
- - com   Cytat(Malinaa @ 8.02.2024, 11:44:53 )...   9.02.2024, 09:22:50
- - Malinaa   Cytat(com @ 9.02.2024, 09:22:50 ) Nie...   9.02.2024, 11:38:31
- - com   Cytat(Malinaa @ 9.02.2024, 11:38:31 )...   9.02.2024, 12:19:11
- - Malinaa   Cytat(nospor @ 8.02.2024, 12:24:30 ) ...   12.02.2024, 00:27:30
|- - Salvation   Cytat(Malinaa @ 12.02.2024, 00:27:30 ...   12.02.2024, 09:24:26
- - Malinaa   Cytat(Salvation @ 12.02.2024, 09:24:2...   12.02.2024, 20:27:50
|- - Salvation   Cytat(Malinaa @ 12.02.2024, 20:27:50 ...   13.02.2024, 11:34:58
|- - Salvation   Cytat(Malinaa @ 13.02.2024, 20:46:10 ...   14.02.2024, 15:21:12
- - Malinaa   Cytat(Salvation @ 13.02.2024, 11:34:5...   13.02.2024, 20:46:10
- - viking   Zaczynając od php 8.0 wszystkie parametry required...   14.02.2024, 09:24:11
- - Malinaa   Cytat(viking @ 14.02.2024, 09:24:11 )...   17.02.2024, 00:06:00
- - nospor   CytatJak to zrobić, aby było ok dla szablonów, w k...   17.02.2024, 11:21:45
- - Malinaa   Tak przerabialiśmy i wiem jak mógłbym to zrobić dl...   17.02.2024, 20:09:45
- - nospor   Jak ty sobei lubisz komplikowac prace I co z tego ...   18.02.2024, 09:13:36
- - Malinaa   Tak jakoś mam, że i tu gdzie można by przyjąć, że ...   18.02.2024, 20:21:15
- - nospor   CytatJeśli w funkcji dam DatabaseInterface $d...   18.02.2024, 21:30:08
- - Malinaa   Używam, choć przyszedł mi na myśl inny system szab...   19.02.2024, 20:34:23
- - nospor   ad2) bez znaczenia Na pozostale dwa juz nie wiem...   20.02.2024, 09:57:23
- - Malinaa   2. Ok i super. 1. Ach, dasz radę. Ten template je...   20.02.2024, 22:34:50
- - nospor   CytatNie jest tak jak piszesz, albo coś nie kumam....   21.02.2024, 09:18:19
- - Malinaa   Tak chcę, aby było bezbłędnie. Czy będzie perfekcy...   24.02.2024, 23:15:43
- - nospor   CytatSprawdzam jak działa templates/base.phtml i y...   25.02.2024, 20:33:19
- - Malinaa   Gadanie, kumasz. Chociaż szczęście każdy rozumie n...   26.02.2024, 00:48:26
- - nospor   Cytatwyskakuje błąd Juz ci kiedys pisalem co masz ...   26.02.2024, 09:32:34
- - Malinaa   Pamięć dobra, ale krótka o czym kiedyś pisałeś co ...   28.02.2024, 18:51:51
- - nospor   CytatSorki, że dopytuje o takie szczegóły jak PHP_...   29.02.2024, 12:03:02
- - Malinaa   Użycie PHP_EOL w TemplateEngine Kodfile_put_conte...   29.02.2024, 21:47:31
- - nospor   Cytat$this->translation = json_encode(...   1.03.2024, 09:40:08
- - Malinaa   Chyba spanikowałem, na szybkości dodałem json_enco...   1.03.2024, 10:53:30
- - nospor   CytatNapisałeś "dane trzymaj w obiekcie...   1.03.2024, 10:57:07
- - Malinaa   Przy sprzątaniu i optymalizacji natrafiłem na kod ...   16.03.2024, 22:40:47
- - nospor   metoda trans nadal za kazdym razem gdy jest wywoly...   19.03.2024, 10:37:19
- - Malinaa   Metoda trans() w którym pliku/klasie? W class Tra...   20.03.2024, 20:59:12
- - nospor   Tak, wlasnie o cos takiego mi chodzilo public fun...   21.03.2024, 09:06:40
- - Malinaa   Konstruktor, o który chodziło to już był. Obiekt ...   21.03.2024, 11:21:16
- - nospor   CytatKonstruktor, o który chodziło to już był. Mi ...   21.03.2024, 11:55:00
- - Malinaa   Ok, rozumiem o czym mówisz, kilka tygodni temu zos...   21.03.2024, 13:39:53
- - nospor   CytatJeśli tak to nie rozumiem, dlaczego aż od ind...   21.03.2024, 17:03:33
- - Malinaa   CytatGeneralnei chodzi o to by nie tworzyc tego sa...   27.03.2024, 15:09:11


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 Wersja Lo-Fi Aktualny czas: 23.06.2024 - 01:58