DbM Framework - Autorska aplikacja frameworka opartego na wzorcu MVC |
DbM Framework - Autorska aplikacja frameworka opartego na wzorcu MVC |
6.02.2024, 09:31:42
Post
#41
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Niby sluchasz co sie do ciebie mowi ale jednoczesnie nie sluchasz.
Mowie wyraznie: obiekt Database ma robic w index.php a nie w zadnym indexController.... Obiekt $database, ktory zrobisz w index.php masz potem przekazac do wszystkiego innego co go uzywa. A skoro z index.php przechodzisz do Route, to masz ten obiekt $database przekazac do Route a potem w route przekazujesz dalej czyli do kontrolerow itd itd. Schodzisz caly czas w dol, tu nie ma zadnej magii -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2024, 10:37:49
Post
#42
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Jeżeli słucham to jak mogę nie słuchać. Rozumiem, że nie ma w tym żadnej magii, ale nie potrafię zrobić tego przejścia dobrze, coś się wysypuje i w tym problem.
Piszemy o tym któryś raz i jak piszesz dla Ciebie to proste, a nie kumam, nie że nie słucham, a zawiesiłem się w tym miejscu (chyba potrzebny reset ;-) Database mam zrobić w public/index.php, czyli jak rozumiem ma być tak: // Routing and database connection use Dbm\Classes\Database; $database = new Database; $routes = require(BASE_DIRECTORY . 'application' . DS . 'routes.php'); $routes($database); // -> dodane $database dalej mam plik routes.php return function (Database $database) { // -> dodane $database $uri = $_SERVER['REQUEST_URI']; $router = new Router(); ... } następnie to nic mi z tego przekazywania nie wychodzi, więc jak dalej... ? -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
6.02.2024, 11:14:14
Post
#43
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
No masz dalej dodawac w dol te $database
$router = new Router($database); Cytat Jeżeli słucham to jak mogę nie słuchać. Skoro mowie index.php a ty dodajesz w INdexController to jak ja mam to rozumiec skolei? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2024, 11:48:20
Post
#44
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Dotąd już miałem
$router = new Router($database); i więcej.. ale idąc dalej i słuchając i tak musiałem dodać w IndexController bo się sypało, w którymś miejscu dalej nie wychodzi -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
6.02.2024, 12:14:57
Post
#45
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
zajebisty opis problemu: bo sie sypalo.. Jak masz problem z kodem ktory robimy, to podajesz komunikat bledu a nie walisz tekstem "bo sie sypalo" i totalnie zmieniasz koncepcje. No tak do niczego nie dojdziemy
Przeciez w Router masz $controller = new $controller(); no to jaki problem zrobic z tego $controller = new $controller($database); ? oczywiscie konstruktor kontrolera tez ma przyjmowac ten parametr. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2024, 15:18:56
Post
#46
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Dobrze, że pokazałeś palcem, bo nie mogłem tego znaleźć,
sorki zamotałem się, a tak samo proste jak w index.php, ale przy zaktualizowanym kodzie w index.php jednak nie dajemy, tylko w klasie Router ? : $database = new Database; $controllerInstance = new $controller($database); po czym w AbstractController public function __construct(Database $database) { $this->database = $database; } i teraz jest ok, bo działa w IndexController: Kod /* * TODO! public function __construct(Database $database, Translation $translation) // TODO! Wstrzykiwanie do konstruktora!? */ public function __construct(Database $database) { $model = new BlogModel($database); $this->model = $model; $translation = new Translation(); $this->translation = $translation; } /* * TODO! public function index(Translation $translation, etc...) // TODO! Wstrzykiwanie do metody!? * * @Route: "/" */ public function index() { ... } i modele wygląda że są już super - konstruktor śmiga i mamy jedno połączenie. Pozostały jeszcze zapytania o IndexController 1. czy można / jak zrobić aby wstrzykiwać do woli co tylko potrzebne public function __construct(Database $database, Translation $translation, FirstService, SecondService, Three, etc....) 2. oraz wstrzykiwanie do metody ? np. public function index(Translation $translation, etc...) Ten post edytował Malinaa 6.02.2024, 15:21:31 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
6.02.2024, 15:26:07
Post
#47
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Cytat ale przy zaktualizowanym kodzie w index.php jednak nie dajemy, tylko w klasie Router ? : No i widzisz aty dalej swoje. Ja ci mowie jedno, a ty i tak robisz po swojemy.Wyrnaznie pisalem ze to ma byc w index.php. Teraz $database stworzyles w Router, na dodatek warunkowo przed tworzeniem kontrollera. Ale przeciez $database moze byc wykorzystawane w innych miejscach a nie tylko w kontrolerze a ty to wlasnie ograniczyles do kontrolera. Cytat 1. czy można / jak zrobić aby wstrzykiwać do woli co tylko potrzebne public function __construct(Database $database, Translation $translation, FirstService, SecondService, Three, etc....) Albo powtarzasz kroki z database, albo wkoncu sciagasz DI co ci proponowano. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2024, 16:22:25
Post
#48
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
No, aż mi głupio, ale jeszcze nie mogę uwierzyć, że aby było ok trzeba wykonać aż takie przejście z pliku do pliku i plik po pliku.
Jest tak w pliku index.php // Routing and database connection use Dbm\Classes\Database; $database = new Database; $routes = require(BASE_DIRECTORY . 'application' . DS . 'routes.php'); $routes($database); routes.php return function (Database $database) { $uri = $_SERVER['REQUEST_URI']; $router = new Router($database); ... } class Router public function __construct(Database $database) { $this->database = $database; } if (class_exists($controller)) { $controllerInstance = new $controller($database); ... } AbstractController - nie jest abstract, więc nazwa do zmiany public function __construct(Database $database) { $this->database = $database; } IndexController public function __construct(Database $database) { $model = new BlogModel($database); $this->model = $model; $translation = new Translation(); $this->translation = $translation; } aż dochodzę do modelu BlogModel public function __construct(Database $database) { $this->database = $database; } Czy teraz jest Ok? -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
6.02.2024, 16:29:49
Post
#49
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
nie
aż dochodzę do modelu BlogModel public function __construct(Database $database) { $this->database = $database; } a: aż dochodzę do modelu BlogModel public function __construct(Database $database) { parent::__construct($database); // inne rzeczy w konstruktorze BlogModel } Moze to i glupio wyglada ale tak sie robi. W sensie nie robi sie tak jak ty to robisz, tylko sie uzywa automatow co juz ci proponowano. Ale tak wlasnie generalnie wyglada DI. Obiekt jest tworzony raz a potem przekazywany wszedzie tam gdzie potrzeba. Ulatwi to wiele spraw, chocby testowanie aplikacji -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2024, 16:57:05
Post
#50
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Po zmianie w __construct()
Message: Cannot use "parent" when current class scope has no parent File: Model\BlogModel.php on line 21 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
6.02.2024, 17:22:18
Post
#51
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
sorki, mialem na mysli kontrollery a nie model.
czyli nie IndexController public function __construct(Database $database) { $model = new BlogModel($database); $this->model = $model; $translation = new Translation(); $this->translation = $translation; } a IndexController public function __construct(Database $database) { parent::__construct($database); $model = new BlogModel($database); $this->model = $model; $translation = new Translation(); $this->translation = $translation; } -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2024, 18:50:18
Post
#52
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Aha, czyli dodać tylko linijkę:
parent::__construct($database); w konstruktorze, ponieważ dziedziczy z kontrolera bazowego, no i już wiem jak nazwać kontroler bazowy AbstractController to BaseController no i wszystko jasne Kod Moze to i glupio wyglada ale tak sie robi. W sensie nie robi sie tak jak ty to robisz, tylko sie uzywa automatow co juz ci proponowano. Ale tak wlasnie generalnie wyglada DI. Obiekt jest tworzony raz a potem przekazywany wszedzie tam gdzie potrzeba. Ulatwi to wiele spraw, chocby testowanie aplikacji A to nawet nie jest bez sensu zrobić takie ćwiczenie Ok, po zmianie został jeszcze routing, takie sobie linki SEO friendly wymyśliłem, np.: /praesent-euismod-gravida-libero-a-luctus-nisi-fermentum-nec,art,5.html że nie ma lekko z tym routingiem. Mniejsza z tym routingiem, czy jest tu jakieś miejsce gdzie przydałby się np. AbstractController, albo Interfejs, a może Fabryczka ?; ) Ten post edytował Malinaa 6.02.2024, 19:08:38 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
7.02.2024, 10:47:34
Post
#53
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Cytat Ok, po zmianie został jeszcze routing, takie sobie linki SEO friendly wymyśliłem, np.: /praesent-euismod-gravida-libero-a-luctus-nisi-fermentum-nec,art,5.html że nie ma lekko z tym routingiem. No ale jakies pytanie w zwiazku z tym czy tylko komunikujesz? Cytat Mniejsza z tym routingiem, czy jest tu jakieś miejsce gdzie przydałby się np. AbstractController, albo Interfejs, a może Fabryczka ?; ) No interfejsy daje sie w zasadzie wszedzie. u ciebie napewno na wszystko to co wstrzykujesz powinny byc interfejsy -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
7.02.2024, 15:09:08
Post
#54
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
Ja osobiście rozumiem dlaczego ktoś tworzy i stosuje własne FW. Mają kilka zalet: - na początku są proste w obsłudze - są lekkie - uwzględniają specyfikę hostingu - są szyte na miarę umiejętności twórcy. Jednak problemy przychodzą gdy, projekt się rozrasta i różnych powiązań modułów jest coraz więcej. Zaczynają pojawiać się zbędne powtórzenia, blędy tam gdzie nie powinno ich być. No i to jest pierwszy i podstawowy błąd, kiedyś kiedy środowisko PHP raczkowało powstawało wiele potworków, która były systemami Legancy już na samym starcie projektu, potem projekt coraz bardziej się rozrastał i zainwestowanych środków nikt już nikomu nie zwróci, wiec utrzymuje się takie twory po dziś, ale w 2024 roku powinno nie być już zrozumienia dla takich praktyk. Sam tak jak pisałem wyżej wiele lat temu tworzyłem własne bo mi się jak każdemu wydawało że prosty projekt to poco zatrudniać taka kobyle jak pełnoprawny FW, ale czasy mamy inne i FW też pozwalają na to by dla mikroporjektów odpalać je i nie jest to taki już ogromny narzut jak kiedyś, dlatego uśmiercono już Silexa czy Lumena, bo Symfony czy Laravel potrafią je w pełni zastąpić. A największym problemem tego było to co napisałeś: "są szyte na miarę umiejętności twórcy.", w zeszył roku przez pewien czas przyszło mi pracować z takim systemem, jego poziom rozwoju zatrzymał się na PHP 5.4, a na starcie wszystkie błędy musiały być tam filtrowane bo było ponad 500 błędów o tym, że używana jest metoda klasy jako statyczna metoda, nie było szans na podbicie nawet do 5.5, bez przepisania połowy tego kodu, pomijając to że jest tak napisany ze nawet rector by sobie z tym nie poradził, w planach miało być przejście na PHP 5.6 a potem 7, ale jak wiadomo nowe funkcjonalności wygrały z naprawa tego co przez lata tam napsuto. Dlatego nie róbmy sobie krzywdy tworząc takie fw dla ideii, jeśli chcemy poznać jak coś działa to kod jest open source można przejrzeć źródła i testy i nawet jak nadal uparcie chcemy coś pisać to trzeba już mieć doświadczenie tka jak ktoś już tutaj wcześniej o tym wspominał. Cytat Malinaa musisz sobie postawić zasadnicze pytanie poco to tworzysz? Pan Bóg stworzył istotę dla hecy, z tyłu plecy, z przodu plecy. A jednak po niej przyszedł ten, który był zrodzony, a nie stworzony Chcesz pomóc? Napisz jak mam zakodować DI i inne drobiazgi, o których pisałem wyżej. Chcę pomoc ale kompletnie nie zrozumiałeś przekazu, wysłałem Ci wartościowy materiał https://symfony.com/doc/current/create_framework/index.html do którego nie zajrzałeś nawet. Uparłeś się żeby stworzyć FW bez composera, co w 2024 jest już niedopuszczalne w żadnym greenfield`zie. Kiedy w końcu PHP dojrzało do pewnych standardów które w Javie, czy C# mamy od lat i za których brak PHP przez lata był hejtowany, ty robisz wszytko by nadal powielać wszystkie złe praktyki jakie przez lata w tym języku stosowano. Wysiałem tobie również https://phptherightway.com/ tutaj również nie zajrzałeś, tam masz odpowiedzi chociażby na pytanie jak wdrożyć DI https://phptherightway.com/#dependency_injection Skoro chcesz poznać jak to działa to o tym poczytaj, nie oczekuj że podam Ci coś na tacy bo wtedy nie poznasz jak to działa, ale jak chcesz naprawdę czegoś się nauczyć z tworzenia tego FW to zanim zaczniesz pisać kod musisz zglebić te zagadnienia i przed wszystkim słuchać rad innych, którzy też kiedyś to poznawali tak jak Ty, nikt się nie budzi z tą wiedzą, zobacz przez ile postów z nospor pisałeś o tym jak wdrożyć DI, a wynikało to z tego że nie wiedziałeś czym jest ten wzorzec, wiec tego nie potrafiłeś przełożyć na kod. Jeśli chcesz naprawdę do czegoś w tym FW dojść to musisz bardzo dużo poczytać o tym, a dopiero potem próbować to przełożyć na kod, my siadamy do kodu bo już znamy pojecie DI itp, ty je poznajesz wiec to normalne że nie widzisz tego jeszcze w kodzie, ale jakbyś miał już teorie za sobą to byś to tak samo widział jak my Patrzysz na to że Wordpress nie ma composera, co oczywiście jest prawdą ale on powstał w 2004 roku, tam ten kod jest tak stary że jak powstawał było jeszcze PHP 4.X, potem 5.0, stąd ma wiele rzeczy których by w 2024 roku nie zastosowano, zaczynając od konwencji nazewnictwa klas i metod, braku composera w oficjalnym core i wsparcia dla PSR, ale ten kod ma 20 lat, nikt czegoś co przez 20 lat szczególnie w ramach open source nie przepisze na obecne standardy, będzie to utrzymywane w tej formie do końca jego istnienia, ale przez to własnie PHP jest tak bardzo nienawidzony, za Wordpressa bo nadal ludzie myślą że PHP wygląda tak jak Wordpress, ale jak ten system blogowy zasila jakieś 60% internetu to nie ma możliwości tak drastycznych zmian, bo tam musi być zachowana kompatybilność by 60% internetu się nie wysypało, ale to nie znaczy, że jesteśmy zmuszeni do tego by dalej tak pisać w Wordpressie, bo nie jesteśmy możemy użyć https://roots.io/bedrock/ i mieć kod na miarę 2024 roku i musisz to kolego zrozumieć, że nie jesteśmy już w 2004 roku, nie ma miejsca na tworzenie tego w ten sposób jeśli faktycznie chcesz się czegoś nauczyć i kiedyś nam za to podziękujesz że nie szedłeś tą ślepą drogą Jak zaczniesz pisać to tak jak na 2024 rok przystało wtedy bardzo chętnie zrobię Ci Review kodu Swoją drogą już Ci pisałem MVC to tylko pewna konwencja(https://www.youtube.com/watch?v=pJSoS4VBIW4&themeRefresh=1 poza tym obejrzyj sobie to), nie da się jej zaadaptować do WEB, to zawsze będzie jakaś wariacja wokół tego i nie ma problemu by katalog z templatkami nazywał się templates, a jak robisz templatki w czystym PHP/HTML to jak najbardziej dobrym rozszerzeniem dla tego jest phtml, to już taki standard(wprawdzie już raczej się nie używa tylko systemów jak twig ale w teorii można)
Swoją droga nie można tego nawet uruchomić bo na sztywno zaszyłeś w metodzie dispatch w 37 lini klasy Router
i nie można było tego odpalić na jakiś vhoscie, to powinno być opcjonalne albo konfigurowalne. Fajne logo takie trochę kradzione od JetBrains Ok, po zmianie został jeszcze routing, takie sobie linki SEO friendly wymyśliłem, np.: /praesent-euismod-gravida-libero-a-luctus-nisi-fermentum-nec,art,5.html że nie ma lekko z tym routingiem. To nie jest akurat SEO friendly https://www.seroundtable.com/google-commas-...tion-32741.html Prosze tutaj obsługa routingu(żeby nie było że nie chcę pomoc) Klasa Router
Plik routes.php
W pliku routes musiałem poprawić route dla artykułow bo pattern się nie zgadzał z regułami rewrite oraz linkami na stronie
Mała zamiana do obsługi stron typu the-best-offer,offer.html
oraz matchRoute by nie łapało niepotrzebnie /link.html jako pattern /{#}.html wtedy kiedy nie powinno poza tym powinno być raczej 1,user.html a nie user,1.html skoro już taka konwencje przyjąłeś w offer ale jak tak ma być jak masz to wtedy jeszcze taka zmiana
i w routes.php
Oczyścicie musisz poprawić UserController według nowej konwencji z DI Popraw tez linki bo potem musisz mieć powielone reguły bo raz są z blog raz bez, zależy gdzie klikniesz:
Jeszcze małą zmiana by każdy pattern był obsługiwany
oraz dispatch dla pn takiej reguły
Ten post edytował com 7.02.2024, 11:49:05 |
|
|
8.02.2024, 11:44:53
Post
#55
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
No ale jakies pytanie w zwiazku z tym czy tylko komunikujesz? No interfejsy daje sie w zasadzie wszedzie. u ciebie napewno na wszystko to co wstrzykujesz powinny byc interfejsy Routing jest w trakcie budowy. Pierwsza wersja działa tylko na localhost po konfiguracji w kilku prostych krokach wg. instrukcji w README, ale kiedy utworzyłem na Windows domenę dla testów okazuje się, że w domenie routing nie działa, więc muszę poprawić. Są tu pozostałości z wersji pierwszej FW, np. /public/ .htaccess RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] tego ?url=$1 nie powinno już być (było potrzebne przy sprytnej metodzie zamiast routingu)!? Trzeba by pliki .htaccess w /public/ i katalogu głównym zrobić do porządku, aby routing działał na serwerze zdalnym i lokalnym. Pozbyłem się sprytnej metody (która funkcjonowała jako routing na local i zdalnym) i utworzyłem na jej miejsce routing, który coś nie bardzo chce zadziałać na zdalnym. Jeżeli przychodzi pomysł jak poprawić wymienione elementy, prośba o info. Usuwając 'url' będą też inne metody do poprawienia, np. class DataFlatfile -> function fileName() poza tym przy routingu wykorzystywany był define('APP_PATH', ''); co tez nie jest za dobrze, APP_PATH to raczej miało być używane dla szablonów mailera itp. register-created-account.html -> {page_address} ale nie w routingu. Interfejsy. No to od czego zaczniemy? Przydałby się pierwszy Interfejs, no tylko od czego zacząć. Poznałem i przeanalizowałem ho, setki interfejsów, ale żebym który napisał. Ha ha mam okazje! Jakie to proste, ale kiedy zacząć trzeba od podstaw?! Jako, że aplikacja funkcjonuje już w pierwszej wymaganej opcji bez menedżera pakietów, można spróbować jak sobie radzi z Composerem. Wgrałem PHPUnit, teoretycznie zainstalowane, ale gorzej z uruchomieniem testu, a przydałby się pierwszy test np. tego naszego połączenia z bazą danych. Zaktualizowałem cały kod na Gicie z wersji 2.1 do 2.2 z nowym DI. W logach miałem zero błędów. Przed wysłaniem sprawdziłem kod narzędziami od jakości kodu, wynik 0 błędów No i to jest pierwszy i podstawowy błąd... Czyli kodowanie w czystym PHP uważasz za błąd? No, mając na względzie samą komercje, to masz racje, po prostu nie opłaca się pisać kodu od nowa kiedy są gotowce. Czas jest cenny, ale pomijając komercyjne projekty może przyjmijmy, że mamy czas, ponieważ gotowce też nie wzięły się z powietrza. Przyznam jednak, że jestem skłonny przyznać Ci racje bardziej niżeli słowom, które napisał Tomplus, ale generalnie macie podobnie racje To co może zakodujemy coś interesującego w PHP?! Cytat Chcę pomoc ale kompletnie nie zrozumiałeś przekazu, wysłałem Ci wartościowy materiał... Uparłeś się żeby stworzyć FW bez composera... Dziękuje za chęci. Chyba nie oczekujesz, że ogarnę materiał, nad którym pracowałeś latami w tydzień (jednocześnie pisząc kod)... Uparłem się, no ok, ale nie prawdą jest że bez Composera itp. itd. Obiecuję Ci , że spróbuję ogarnąć przesłane materiały, ale kiedy przeczytam wszystkie treści, które chciałbym przeczytać to pójdę na psychologię, oczywiście programować sztuczną inteligencje No na psychologii to chyba wszystko można. Cytat Swoją droga nie można tego nawet uruchomić... Sorki, nie ukończyłem prac nad routingiem, działa tylko na localhost w dowolnym katalogu, na domenie sypie się. Cytat Fajne logo... Do logo wziąłem mapę Polski i jej obrys pokolorowałem na kolory, które pasowały do template. Super, że fajne, a że wyszło podobne do JetBrains to nie grzech. Cytat To nie jest akurat SEO friendly... Ok Przesłałeś poprawki routingu, Wow. Spróbuję wdrożyć przesłany kod i zobaczę jak sobie poradzi w domenie. Raczej przy weekendzie się tym zajmę, bo dzisiaj to już ogromny komercyjny zegar mnie goni. Ten post edytował Malinaa 8.02.2024, 13:35:54 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
8.02.2024, 12:24:30
Post
#56
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Cytat Interfejsy. No to od czego zaczniemy? smile.gif Przydałby się pierwszy Interfejs, no tylko od czego zacząć. Nie rozumiem jak to od czego zaczac? Tworzysz interfejs o nazwie np. DatabaseInterface Twoja klasa Database implentuje ten interfejs class Database implements DatabaseInterace a wszedzie tam w konstruktorach czy gdzie tam miales (Database $database) to teraz masz miec (DatabaseInterface $database) No to sa juz podstawy interfejsow. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
9.02.2024, 09:22:50
Post
#57
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
Czyli kodowanie w czystym PHP uważasz za błąd? No, mając na względzie samą komercje, to masz racje, po prostu nie opłaca się pisać kodu od nowa kiedy są gotowce. Czas jest cenny, ale pomijając komercyjne projekty może przyjmijmy, że mamy czas, ponieważ gotowce też nie wzięły się z powietrza. Przyznam jednak, że jestem skłonny przyznać Ci racje bardziej niżeli słowom, które napisał Tomplus, ale generalnie macie podobnie racje To co może zakodujemy coś interesującego w PHP?! Dziękuje za chęci. Chyba nie oczekujesz, że ogarnę materiał, nad którym pracowałeś latami w tydzień (jednocześnie pisząc kod)... Uparłem się, no ok, ale nie prawdą jest że bez Composera itp. itd. Obiecuję Ci , że spróbuję ogarnąć przesłane materiały, ale kiedy przeczytam wszystkie treści, które chciałbym przeczytać to pójdę na psychologię, oczywiście programować sztuczną inteligencje No na psychologii to chyba wszystko można. Sorki, nie ukończyłem prac nad routingiem, działa tylko na localhost w dowolnym katalogu, na domenie sypie się. Do logo wziąłem mapę Polski i jej obrys pokolorowałem na kolory, które pasowały do template. Super, że fajne, a że wyszło podobne do JetBrains to nie grzech. Ok Przesłałeś poprawki routingu, Wow. Spróbuję wdrożyć przesłany kod i zobaczę jak sobie poradzi w domenie. Raczej przy weekendzie się tym zajmę, bo dzisiaj to już ogromny komercyjny zegar mnie goni. Nie uważam za kodowanie w czystym PHP za błąd, ale mówimy o zupełnie czymś innym, na tym polegać powinno kodowanie w czystym PHP https://tsh.io/blog/how-create-framework-ag...ication-in-php/ tylko to nie ten poziom wiedzy, wspomniałem o tym wcześniej już najpierw trzeba poznać jakiś FW by potem pisać kod niezależny od niego, pisanie w czystym PHP to nie tworzenie własnego FW, bo nawet jak dla jakiegoś projektu musisz stworzyć jakiś SharedKernel czy Core w czystym PHP to nadal nie jest to pełnoprawny FW jaki teraz próbujesz stworzyć. Po prostu powinieneś używać tego tam gdzie ma to sens Jasne że możemy zakodować, ale z użyciem np Symfony/Laravel, pisząc logikę jako framework-agnostic, nie DbM Framework Ten materiał nie jest stworzony przez mnie, polecam Ci tylko wartościowe źródła z internetu które warto przestudiować, tym bardziej biorąc się za tworzenie FW, bez tych podstaw to się nie uda dobrze Wystarczyło pozbyć się tej metody i działa Co do logo jasne ale jak coś jest zbyt podobne do siebie to jest plagiat, wiec to grzech Poprawiłem ale dla wersji poprzedniej, widziałem że zrobiłeś zmiany w wersji 2.2 wiec musisz sobie poprawić różnice Pytasz o interfejsy, bo znów nie znasz tego pojecie, przez co nie wiesz jak to przełożyć na kod, musisz najpierw poczytać potem próbować coś zastosować w własnym kodzie Jak zrozumiesz pojecie interfejsu to łatwo przyjdzie Ci go stworzyć, np dla przypadku o którym wspomniał nospor |
|
|
9.02.2024, 11:38:31
Post
#58
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Nie uważam za kodowanie w czystym PHP za błąd... tylko to nie ten poziom wiedzy... Pierwszy raz w tym poście słowo poziom jest jak najbardziej uzasadnione i tym razem bez dwóch zdań przyznam (mimo że nie powinienem) - masz racje. Gdybym miał większą wiedzę, o której piszesz nie bawiłbym się frameworkami, a od razu zajął sztuczną inteligencją ale póki co pozwól, że stworzę kod, który jak rozumiem tylko dla mnie ma sens - jest mi potrzebny jak WordPress 60 procentom Internetu (chociaż 10 lat temu ostatni raz użyłem tego kodu, bo kiedy go zobaczyłem i napisałem kilka wtyczek uznałem, że nie ma sensu iść tą "ślepą" drogą), poza tym może zostańmy przy temacie postu frameworkach nie koniecznie autorskich a Symfony i Laravel. Powstaje odwieczne pytanie sensu... podążania tą drogą? P.S. Dziękuje za przesłanie poprawek routingu, sprawdziłem śmiga w domenie, jeszcze zajrzę jak chodzi na localhost, no i można poczytać o interfejsach itd... I nastała jasność. -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
9.02.2024, 12:19:11
Post
#59
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
Pierwszy raz w tym poście słowo poziom jest jak najbardziej uzasadnione i tym razem bez dwóch zdań przyznam (mimo że nie powinienem) - masz racje. Gdybym miał większą wiedzę, o której piszesz nie bawiłbym się frameworkami, a od razu zajął sztuczną inteligencją ale póki co pozwól, że stworzę kod, który jak rozumiem tylko dla mnie ma sens - jest mi potrzebny jak WordPress 60 procentom Internetu (chociaż 10 lat temu ostatni raz użyłem tego kodu, bo kiedy go zobaczyłem i napisałem kilka wtyczek uznałem, że nie ma sensu iść tą "ślepą" drogą), poza tym może zostańmy przy temacie postu frameworkach nie koniecznie autorskich a Symfony i Laravel. Powstaje odwieczne pytanie sensu... podążania tą drogą? P.S. Dziękuje za przesłanie poprawek routingu, sprawdziłem śmiga w domenie, jeszcze zajrzę jak chodzi na localhost, no i można poczytać o interfejsach itd... I nastała jasność. Żeby dziś znaleźć prace trzeba jeden z nich znać, a zakładam że kiedyś będziesz chciał pracować jako programista, skoro próbujesz się tego uczyć? FW to tylko narzędzie, jak młotek do wbijania gwoździ, jak nie będziesz potrafił jego obsługiwać to zrobisz sobie krzywdę, z FW jest tak samo. Jak już potrafisz go używać to wtedy czas na gwoździarkę i tu jest tak samo, poznajesz nowe rzeczy, zaczynasz pisać kod zgodny z ideą DDD, stajesz się framework-agnostic itp Super że działa, ciesze się i fajnie że zaczynasz słuchać o tym żeby poczytać |
|
|
12.02.2024, 00:27:30
Post
#60
|
|
Grupa: Zarejestrowani Postów: 569 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Tworzysz interfejs o nazwie np. DatabaseInterface Twoja klasa Database implentuje ten interfejs class Database implements DatabaseInterace Ogólnie jak działają interfejsy to wiem, w praktyce wyszło o czym nie wiedziałem, ale już też zrobione. Interfejsy utworzone. Coś chyba jeszcze jest nie tak, ponieważ w np. DatabaseInterface public function queryExecute(string $query, ?array $params = [], bool $reference = false): bool; kiedy zmienię na bool $reference bez wartości w Visualu pojawia się chmurka: Expected 3 arguments, Found 2. Aplikacja działa ok, ale Visual coś pokazuje nie ok? Super że działa, ciesze się i fajnie że zaczynasz słuchać o tym żeby poczytać O interfejsach poczytane, chociaż powtarzają się w Necie te same podstawy i za wiele poza tym o czym napisał nospor się nie dowiedziałem, ale zawsze to coś nowego. Routing jeszcze nie daje spokoju, ponieważ linki nie są SEO friendly, np. present-eusmod-grvd-lbero-luctus-ns-fermentum-nec,art,5.html Jaka byłaby najlepsza opcja z końcówką .html, może /art/5/present-eusmod-grvd-lbero-luctus-ns-fermentum-nec.html ale ze slashami w adresie i prawidłową ścieżką był zawsze kłopot w przeglądarce ? Ten post edytował Malinaa 12.02.2024, 00:53:00 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.09.2024 - 10:32 |