Skrypt routingu - prośba o opinię

0

Hej, czy ktoś doświadczony chciałby rzucić okiem na mój projekt routingu? Napisałem w celach edukacyjnych, jestem nowy w php więc proszę o wyrozumiałość ;) Tutaj link do GitHuba z projektem: https://github.com/DragK/rr

Uprzedzając niektóre pytania:

1. Dlaczego nie zastosowałeś rozdzielenie problemów?
Ponieważ i tak klasa Route jest mała więc rozdzielenie 5/6 metod na 2 a może i nawet 3 klasy w mojej opinii mija się z celem

2. Nowy w php a korzysta z composera, phpunit i wzorca MVC a sam projekt jest na GitHubie?
Tak, poniewać pisząc ten projekt chciałem nauczyć się korzystania z:

  • systemu kontroli wersji
  • composera a w tym autoloading
  • pisania testów jednostkowych
  • MVC rozszerzonym o moduły/biblioteki. Czyli nie myśleć nad tym czy zrobić gruby kontroler czy model

Wszelka krytyka i uwagi uargumentowane bardzo mile widziane!

0

Nie miałem za dużo czasu na przejrzenie dogłębne ale...
O takie coś w kontrolerze? Nieładnie :)

print_r($this->loadView('templates/head.php', $data));

Twiga byś podpiął może i być miał porządek z widokami + sekcje blokowe, dziedziczenie w szablonach i odpalanie modyfikatorów na widokach.

0

Proszę cię... nie pisz, że jesteś nowy skoro masz na GH jakiś system logowania dodany jakoś miesiąc temu.. zapewne też go napisałeś po pierwszym kursie php z internetu... trochę to śmieszne pisać, że jest się w czym nowym i pokazywać, że się coś tam potrafi.. to tak jak by osoba mająca pierwszy raz w życiu w ręku spawarkę spawała z zachowaniem wszelkich dobrych zasad i procedur.. więc albo jesteś geniuszem, ale szukasz poklasku, bo dam projekt napisania prostego "systemu" cms osobie która siedzi o 3 dni w php (jest nowa) i gwarantuje ci, że to co napisze nie będzie miało wiele wspólnego z dobrymi zasadami..

co do kodu.. nie korzystasz z DI

0

@ Pijany Samiec

To nie mój system logowania. Chciałem go przetestować ale nie ogarniałem GH i chyba zrobiłem tak, że pracowałem nad nim jako Fork czy jak to się nazywa. Jakbyś dokładnie sprawdził to byś zobaczył kim jest autor tego skryptu ;)

Co do bycia nowym i pokazać, że coś się umie ma sens. Wiesz jaki? Osoba doświadczona może wskazać błędy, co poprawić, ukierunkować, natchnąć. Aby potem taki nowicjusz nie nauczył się złych praktyk na przykład.

Geniusz/poklask bo zanim zacząłem klepać kod wolałem poczytać trochę na Stacku i książki?

DI nie korzystam, ponieważ nie umiem jeszcze zaimplementować. Poczytam i postaram się dodać. Dzięki za sugestię ;)

Edit:

Według Ciebie, gdzie niby miałbym zastosować DI? Route ma jedną klasę. Pozostałe klasy to tylko potrzebne komponenty aby sprawdzić czy działa dobrze routing więc też nie mają nic w sobie za bardzo. W mojej opinii stosowanie DI w projekcie, który ma na celu naukę to trochę na wyrost. Zwłaszcza, że poradniki tłumaczące założenia DI mówią, że zalety tego podejścia widać w dużych projektach gdzie pracuje się na większej ilości klasach niż, jak w moim przypadku, jednej.
Mimo wszystko dziękuję. Nauczyłem się czegoś o DI ;)

1

@DragK: Dość dobry routing: https://github.com/dannyvankooten/AltoRouter i kilka opcjonalnych: https://www.madebymagnitude.com/blog/creating-a-php-rest-routing-class-for-your-application/. Przeglądnij wszystkie. Zobacz jak inni piszą, jaką logikę trzymają etc.

0

@poniatowski:

Nie do końca rozumiem pewne rzeczy jakie się dzieją w Alto. Np czemu konstruktor wywołuje metody, które raz że domyślnie są puste( myślę, że może to mieć wpływ na wydajność, choć na pewno marginalną) to można je wywołać ręcznie bo są publiczne.
IDE pokazał mi, że dwie zmienne nie są w ogóle używane.
Trochę zagmatwany jest kod od metody match do końca klasy.
Masz rację, trochę za dużo kodu ;) Mimo wszystko dało mi do myślenia i chyba pozmieniam wygląd URI jak i sam proces wychwytywania argumetnów itd. w moim routerze.

W drugim linku jest ten Slim, ale strona nie działa. A na githubie znalazłem jedynie Slim Framework. Niby routing podobnie wygląda więc to chyba to.

0

@DragK:

Taaak i książki nauczyły cię praktyki pisania w OOP, zasad, znajomości wielu innych narzędzi ot tak.. za długo żyję by wierzyć w takie bzdety. Zawsze jak ktoś zaczyna naukę czegokolwiek zaczyna od podstaw wdrażając się głębiej, a nie od zaawansowanych rzeczy by się cofać i potem zrobić 2 kroki wprzód.

1 użytkowników online, w tym zalogowanych: 0, gości: 1