[PHP] Logowanie, zwrot/wypozyczenie ksiazek OOP - mocno początkujący |
[PHP] Logowanie, zwrot/wypozyczenie ksiazek OOP - mocno początkujący |
14.10.2019, 18:03:39
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 14.10.2019 Skąd: Białystok Ostrzeżenie: (0%) |
Cześć,
Zaczynam naukę OOP i w napisałem skrypt który umożliwia rejestracje/logowanie/zwrot/wypożyczenie książek. Mam świadomość istnienia SOLID oraz PSR - czytałem o PSR 1 / 2 i staram się przestrzegać. Nie znam MVC ani testów np. PHPUnit - to będą kolejne kroki w nauce. Czy taki skrypt można określić obiektowym, czy jest to jakaś hybryda? Zanim pójdę dalej jw chciałbym nauczyć się dobrych nawyków i w prawidłowy sposób posługiwać się OOP. Skrypt nie wszedł na forum, umieściłem na githubie Link do GitHub Moje dodatkowe pytania: 1. Tworzenie obiektu Database w konstruktorze innych klas, czy jest to prawidłowe? 2. Metoda checkCredentials klasy log - czy nie narusza zasady pojedynczej odpowiedzialności? Czy nie powinna np. wyszukiwać użytkownika,a następnie inna metoda powinna weryfikować dane? Dzięki za wszystkie uwagi i poświęcony czas |
|
|
15.10.2019, 20:06:49
Post
#2
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 14.10.2019 Skąd: Białystok Ostrzeżenie: (0%) |
1. Dodałem autoloadera
2. Nie znam smarty ani innego template engine, więc HTML wrzuciłem w echo, jeśli to miałeś na myśli. Czy chodziło o rozdzielenie o tyle o ile to możliwe np. index i index_view, ale bez żadnego template engine? 3. Klasa Database w zamyśle miała być universalna do crud, nie wszystko jest z niej wykorzystywane w tym projekcie. Czy korzystając z PDO powinna ona tylko nawiązywać połączenie, a wszelkie operacje na bazie powinny być już napisane w innych klasach? np. funkcje registerUser w klasie RegistrationForm wygląda następująco:
i rzeczywiście dostrzegam trochę niepotrzebność kodu - korzystając z metod Detabase jedyne co zaoszczędziłem w tym przypadku to przy bindowaniu nie daje parametru INT, STR etc, a w pozostałych linijkach mogłem korzystać bezpośrednio z PDO. Jednak była to klasa tworzona w ramach tutorialu OOP, z którego wywnioskowałem właśnie taki sposób działania. 3. Zmieniłem klase log na LoginForm 4. Dodałem namespace, przez co przy autoloaderze się musiałem namęczyć 5. Zmieniłem insert na RegisterUser, jeśli miałeś na myśli mylącą nazwę funkcje - funkcja to zakłada konto, wsadzając rekordy do bazy. 5.
zmieniłem na inne zmienne, kiedyś ucyzłem się pythona i na potrzeby tymczasowej iteracji jak dobrze pamiętam dopuszczano właśnie takie oznaczanie zmiennych. 6. Dodałem komentarze do metod w RegistrationForm Tak, będę ogarniał frameworka, postawiłem na Symfony, ale najpierw chciałem dla świętego spokoju uporządkować to co zrobiłem i chciałem zapoznać się z jakimś template engine, żeby było przejrzyściej, ale może to niewłaściwa kolejność. Nowe pliki pod tym samym linkiem. Dzięki za wypowiedzi. |
|
|
Wersja Lo-Fi | Aktualny czas: 31.05.2024 - 04:04 |