• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ocena projektu PHP - Forum

Object Storage Arubacloud
0 głosów
315 wizyt
pytanie zadane 7 września 2018 w Nasze projekty przez szwarceneger Nowicjusz (170 p.)

Cześć. Tworzę swój pierwszy projekt oparty na wzorcu mvc. Jest to proste forum. Proszę o uwagi, co jest źle, co bardzo źle itd. Pewnie sporo się znajdzie (niektóre rzeczy jeszcze nie dopracowane, inne zrobione tak, aby działały, ale same rozwiązania wydają mi się słabe).

Co na tym forum można robić?

  • przeglądać tematy pogrupowane na kategorie
  • stworzyć konto, zalogować się, zmienić hasło
  • stworzyć nowy temat, odpowiedzieć w temacie (zalogowany użytkownik)
  • usuwać tematy i posty (admin)

Póki co to tyle. Na froncie właściwie nic ładnego nie ma, skupiam się tu tylko na backendzie 

link

 

1 odpowiedź

0 głosów
odpowiedź 7 września 2018 przez Mariusz08 Maniak (62,300 p.)

1. Do repo nie wrzucasz katalogu vendor

2. Nie przestrzegasz standardów PSR

3. Używaj use

4. Możesz używać return type-hintów

5. Możesz korzystać z yoda conditions

abstract class Access {
    public function __construct() {
    }

?

6. 

return @$_SESSION[$key];

wyrzuć małpe

7. 

class Database extends PDO {

zrobiłbym extends \PDO

To tak na szybko.

komentarz 8 września 2018 przez CenterPL Pasjonat (19,070 p.)

5. Możesz korzystać z yoda conditions

Nie wiem czemu wszyscy tak się uparli na to Yoda conditions. To jest tak niesamowicie niewygodne, że aż mnie głowa boli jak widzę. Jedyny profit jest dla samego programisty i tylko w przypadku, gdy porównuje za pomocą ==/=== coś do zmiennej. W każdym innym przypadku używanie yoda conditions jest zbędne. 

Poza tym wystarczy pisać testy i używać potrójnego '=' zamiast podwójnego, żeby uniknąć pomyłek związanych z przypisaniem zamiast porównaniem. 

komentarz 8 września 2018 przez Ehlert Ekspert (212,670 p.)

Poza tym wystarczy pisać testy i używać potrójnego '=' zamiast podwójnego, żeby uniknąć pomyłek związanych z przypisaniem zamiast porównaniem. 

Spróbuj tak w Propelu laugh Korzystam z Yoda cond., bo wg mnie czytelniejsza jest intencja porównania. 

zrobiłbym extends \PDO

Z kolei to jest dla mnie niezrozumiałe. Najpierw piszesz mu use, a potem sam sobie przeczysz. 

komentarz 8 września 2018 przez Assasz Nałogowiec (30,460 p.)
abstract class Access {
    public function __construct() {
    }

?

Konstruktor rodzica można wywołać z klasy dziedziczącej, więc to jest jak najbardziej prawidłowe. Inna sprawa, to dlaczego ta klasa jest abstrakcyjna. Bo jeśli jedynie chcemy uniemożliwić tworzenie nowych instancji tej klasy, to wystarczy ustawić konstruktor jako prywatny.

komentarz 8 września 2018 przez Ehlert Ekspert (212,670 p.)

Bo jeśli jedynie chcemy uniemożliwić tworzenie nowych instancji tej klasy, to wystarczy ustawić konstruktor jako prywatny.

To IMO zła praktyka. Jeśli rzeczywiście nie chcesz tworzyć instancji to skorzystaj z abstract. Jeśli klasa posiada zbyt wiele konkretnych cech, jak na byt abstrakcyjny, to lepiej użyć traita+interface. Prywatne konstruktory to domena singletonów. 

komentarz 8 września 2018 przez szwarceneger Nowicjusz (170 p.)

@Mariusz08, wprowadziłem kilka zmian, dodałem deklaracje typów - tutaj chyba trzeba by zrobić wyłapywanie ew. błędów. Z błędów z ptk.2, które znalazłem to: 

  • brak pustych linii po namespace i use
  • subnamespacesy zaczynające się z malej litery
  • klamry przy klasach i metodach (?)
  • else if zamiast elseif

 

 

komentarz 9 września 2018 przez Mariusz08 Maniak (62,300 p.)

Jeszcze tylko nazewnictwo zmiennych, klamry, itd. Polecam lekturę

zrobiłbym extends \PDO

Z kolei to jest dla mnie niezrozumiałe. Najpierw piszesz mu use, a potem sam sobie przeczysz. 

Niby tak - ale jakoś weszło mi w nawyk to, żeby przed funkcją/klasą wbudowaną w PHP pisać \. np. \PDO, https://github.com/symfony/symfony/blob/f834c9262b411aa5793fcea23694e3ad3b5acbb4/src/Symfony/Component/Cache/Traits/PdoTrait.php#L50

 

komentarz 9 września 2018 przez Ehlert Ekspert (212,670 p.)

Ale to pisał Fabpot, a Ty laugh

Podobne pytania

0 głosów
2 odpowiedzi 185 wizyt
+1 głos
3 odpowiedzi 1,238 wizyt
+11 głosów
7 odpowiedzi 652 wizyt
pytanie zadane 30 marca 2019 w Nasze projekty przez kondzio18 Początkujący (380 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...