[Symfony] Dokładne przyrównania w metodach sprawdzających błędy formularzy |
[Symfony] Dokładne przyrównania w metodach sprawdzających błędy formularzy |
15.04.2020, 10:54:21
Post
#1
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 3.08.2017 Ostrzeżenie: (0%) |
O ile się nie mylę, formularz w Symfony zwraca wartości w postaci niepustego string'a lub null'a dla braku wartości. Zaleca się, aby stosować dokładne przyrównania (===) wszędzie tam, gdzie to jest możliwa. W związku z tym mam wątpliwość, czy zapis z kodu poniżej jest poprawny:
Kod /** * @Assert\IsFalse( * message="Strona www musi rozpoczynać się od znaków: http://" * ) */ public function isUrlValid(): bool { $urlValid = $this->url != '' && substr($this->url, 0, 7) != 'http://' && substr($this->url, 0, 8) != 'https://'; return $urlValid; } Czy nie powinienem zapisywać to w ten sposób (przyrównanie do null'a): Kod /** * @Assert\IsFalse( * message="Strona www musi rozpoczynać się od znaków: http://" * ) */ public function isUrlValid(): bool { return $this->url !== null && substr($this->url, 0, 7) !== 'http://' && substr($this->url, 0, 8) !== 'https://'; } Poza tym lepiej będzie chyba, jeśli return zwróci wynik bezpośrednio z równania, a nie ze zmiennej. Do tego (link poniżej) chyba źle nazwałem dwie metody sprawdzające. Powinno być isNewAndRepeatPasswordGiven() zamiast isNewOrRepeatPasswordGiven(). A także isNotUserEmail() zamiast isUserEmail(). https://github.com/webeeq/symfony.eeq/blob/...ditUserForm.php |
|
|
15.04.2020, 11:04:31
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Gdy cos moze byc pustym tekstem lub NULLem to nie mozesz porownywac tylko do jednego. Lepiej uzyj wiec empty()
Choc tutaj wydaje mi sie i tak ze masz chyba bledy w warunkach logicznych. && substr($this->url, 0, 7) !== 'http://' && substr($this->url, 0, 8) !== 'https://'; chyba sie wykluczaja nawzajem albo ja zglupialem po swietach -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
15.04.2020, 11:40:58
Post
#3
|
|
Grupa: Zarejestrowani Postów: 618 Pomógł: 143 Dołączył: 22.12.2010 Ostrzeżenie: (0%) |
Pomijajac juz kwestie walidacji itp, to do adresow masz
https://symfony.com/doc/current/reference/c...raints/Url.html A jak bys chcial recznie robic, to wydaje mi sie ze regexem byloby lepiej/ladniej. |
|
|
15.04.2020, 14:02:17
Post
#4
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 3.08.2017 Ostrzeżenie: (0%) |
Ten warunek działa dobrze. Wyświetla się błąd, gdy podana jest wartość (adres URL) i nie zaczyna się od http:// i https:// jednocześnie. Ale faktycznie można to zrobić dużo prościej i lepiej.
Dzięki serdeczne za pomoc. |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 04:39 |