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: 535
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
com
post 18.01.2024, 14:49:35
Post #2





Grupa: Zarejestrowani
Postów: 3 033
Pomógł: 366
Dołączył: 24.05.2012

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


Malinaa musisz sobie postawić zasadnicze pytanie poco to tworzysz? Kiedy będziesz szukał potencjalnej pracy kiedyś zakładam na pewno to nastąpi zapytają Cie jakie frameworki znasz, nie powiesz im przecież, że tylko "DbM Framework" bo nikt tego poza Tobą nie zna. Dziś startując na rynku pracy większość ofert wymaga od pracownika znajomości jednego z fw: Symfony, Laravel itp. Jakaś bazę wiedzy już zebrałeś i większość z nas pisała kiedyś własny framework albo swojego cmsa, bo kiedyś to było modne, czasy się zmieniły, dziś nie ma to już sensu, a tworzenie takiego czegoś często uczy Cie od razu z automatu złych praktyk, bo nie masz żadnego mentora który wytyka błędy, nospor i viking dotknęli tylko szczytu góry lodowej przeglądając to w mniej czy bardziej dokładny sposób, ale dziś to nie wystarczy. Podstawami do nauki PHP od zawsze była dokumentacja, ale oprócz tego przez lata wypracowane zostały pewne standardy oznaczone jako PSR https://www.php-fig.org/psr/ i jeśli tworzysz oprogramowanie i się do nich nie stosujesz to od początku popełniasz błąd, który w próżniejszym czasie będzie Cie kosztował nauka złych nawyków których nie będziesz się w łatwy sposób w stanie pozbyć. Polecałbym poczytać np coś takiego https://phptherightway.com/ i zamiast przepalać własne godziny na tworzenie własnego frameworka bez wiedzy i doświadczenia, skupić się na próbie zrozumienia jak działa jeden z powszechnych i dostępnych fw na rynku. A jeśli masz ambicja do tego żeby stworzyć własnego CMSa jako taki pet project dla samorozwoju, to właśnie oprzyj go na takim Symfony czy Laravel, dzięki temu uda Ci się zrozumieć jak to działa i nie będziesz uczył się złych praktyk, a poznasz wiele dobrych praktyk, szczególnie jeśli chodzi o Symfony to nie ma tam antywzorców itp Troche gorzej jest w Laravel, oczywiście da się je wyeliminować ale to trzeba być już na wyższym poziomie wtajemniczenia, niemniej jednak nawet użycie Laravel będzie miało równie wymierne korzyści(po prostu Laravel posiada/posiadał takie anty wzorce jak Active Record(można go zastąpić przez jakiś Data Mapper np Doctrine) oraz nadmiernie wykorzystywał wzorzec Fasady, ale pozostałe kwestie są tam na najwyższym poziomie). Do nauki polecam https://symfonycasts.com/ lub https://laracasts.com/. Na przyszłość jak już tworzysz własny Fw to jest coś takiego jak https://symfony.com/doc/current/create_framework/index.html i należało by się zastosować do tych zasad opisanych tam żeby to miało jakikolwiek sens smile.gif

Kiedy już opanujesz podstawy wybranego przez siebie fw, bez problemu jeśli trafisz na jakiś problem przy tworzeniu tego własnego CMSa znajdziesz tutaj na forum i na innych masę osób które znają ten fw na wylot i beda w stanie Ci pomoc, nakierować itp, nikt tego nie napisze za Ciebie ale to będzie dla Ciebie merytorycznie znacznie korzystniejsze niż ocenianie wielu godzin twojej pracy nad "DbM Framework", bo jakby się defakto nad tym mocno zastanowić i zastosować do PSR i innych dobrych praktyk to ten kod cały by trzeba napisać na nowo smile.gif Nie chcę Cie zrazić i nie odbierz tego jako hejt, to normalne kiedy osoba która się uczy zabiera się za tworzenie FW/CMS, a na jej kod spojrzy ktoś z dużo większym stażem, tez kiedyś zaczynałem i popełniłem taki sam projekt, zarówno robiłem własnego CMSa jak i fw w swojej karierze(ale dopiero pierwszy komercyjny projekt zrobiony w Symfony, nawet po latach jak do niego zajrzałem, to mimo iż dziś posiadam o wiele więcej doświadczenia niż wtedy, ale budowałem go zgodnie z dokumentacja na SynfonyCast wtedy defa kto nazywało się jeszcze KnpUniversity, to jak patrze na ten kod po latach to on nadal nie wymaga zmian, no możne poza tym że dziś bym dodał typy zmiennych wszędzie gdzie się tylko da, za to jak zaglądam do swojego cmsa/fw to widzę jak mało jeszcze wtedy znałem te technologie), ale to było ponad 15 lat temu, dziś bym się tego nie podjął a od początku po przestudiowaniu dokumentacji dla PHP zacząłbym eksperymenty pewnie z Symfony smile.gif Tobie również życzę by "DbM Framework" pozostało historia do której wrócisz za 10 lat i zobaczysz jaki przeskok w swojej wiedzy za ten czas zyskałeś i żeby pierwszy twój projekt w fw jaki sobie wybierzesz nadal za te 10 lat cieszył oko, a nawet jakby było tam cos do poprawy to żebyś mimo wszytko dostrzegał to jaka przepaść będzie dzielić cms na fw "DbM Framework" a na ogólnodostępnym fw, ale to myśle już teraz zauważysz jeśli spróbujesz pójść w te stronę smile.gif Bo jeszcze przed Tobą poznanie czym jest DDD i tworzenie kody który będzie Framework-agnostic, bo fw to jest taki Ninja Master toolbox(scyzoryk, pila, klucze w jednym) i jest on w miarę uniwersalny ale on powinien być tylko jednym z narzędzi ułatwiającym prace tak jak IDE jest dla pisania kodu i powinien pomagać a nie nas ograniczać smile.gif ale to gdzieś tam daleko w przyszłości zrozumiesz o czym mówię smile.gif

PS na koniec dodam jeszcze że w protokole HTTP nie da odzwierciedlić wzorca MVC, tutaj tworzona jest tylko jedna z wariacji bazująca na tej idei, ale nigdy nie będzie to pełnoprawny MVC, wiec w sumie powoli przestaje się tak nawet nazywać te fw(Jeśli przeczytasz o Symfony na nie polskiej stronie Wikipiedii, bo tam nikt tego nie redaguje to nie ma już nic wzmianki o MVC) wink.gif

Ten post edytował com 18.01.2024, 15:01:47
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: 31.05.2024 - 07:43