MVC, Controller i Model -> prośba o opinię, Framework MVC, prosty kontroler rejestracji, aktywacji i logowania |
MVC, Controller i Model -> prośba o opinię, Framework MVC, prosty kontroler rejestracji, aktywacji i logowania |
3.01.2016, 16:24:23
Post
#1
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
Witam
Dopiero uczę się obiektowości i chcę napisać sobie lekki framework MVC, na potrzeby prostych stron z systemem CMS. Napisałem system rejestracji użytkownika, aktywacji konto i logowania, chodzi o ocenę tego przez doświadczone osoby, czy dobrze rozumiem MVC.
-------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
3.01.2016, 16:33:02
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) |
Do oceny powinieneś raczej dac to co robią klasy Core`owe czyli główny kontroler, model i widok itd.
|
|
|
3.01.2016, 16:43:36
Post
#3
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
Ale one teoretycznie nic nie robią dlatego nie dawałem bo po co dawać Corową klasę kontrolera jak jest w niej tylko uruchamiana klasy widoku.
Dla mnie Core Class to kontroler i model usera ale to pewno dlatego że dopiero się uczę OOP stare przyzwyczajenia nie pozwalają mi pisać czysto obiektowo tylko funkcje owijam w klasy. Dlatego liczę na kilka cennych uwag aby ruszyć z miejsca.
Ten post edytował LowiczakPL 3.01.2016, 16:48:12 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
3.01.2016, 16:46:15
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) |
No ok. A gdzie robisz rozruch całego frameworka i parsowanie adresow ? Jaki jest flow ?
|
|
|
3.01.2016, 17:45:34
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
polecam poczytać o psr, czyli spisany zbiór zasad standardu na którym warto sie opierać wpisz w google psr php, jest nawet po polsku ale nwm czy wszystko przetłumaczyli, choć ang nie powinie być problemem co do kodu powyżej z ost posta to widok przekazuj jako zależność, nie twórz go w w klasie, tutaj warto poczytać o depedency injection i o IoC
Jak zajrzysz do psr to tam zalecają nie używać uderscore dla prywatnych, no i raczej teraz piszemy stylem cammelCase No i wykorzystaj autoloading z psr-4 ( jest jeszcze psr-0, ale to już można zapomnieć ) W dodatku staraj się trzymać jednego standardu bo raz klamra w tej samej lini raz w innej, dla metod i klas w nowej Ten post edytował com 3.01.2016, 17:46:02 |
|
|
3.01.2016, 17:47:26
Post
#6
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
Ale to jest Abstrakcyjna klasa kontrolera stworzona tylko do uruchamiania widoku, ewentualnie wersji językowej ale nie zaimplementowałem jej jeszcze.
Co do uderscore to spodobał mi się ten sposób eksponowania zmienny prywatnych, ale nie wiem czy jest sens wyróżniać zmienne prywatne, publiczne i chronione, czy to w ogóle się przydaje? -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
3.01.2016, 18:01:43
Post
#7
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
owszem, ale na etapie projektowania powinieneś brać pod uwagę to, że ktoś kto powiedzmy będzie chciał skorzystać z Twojego framewoka, zamiast tego widoku który mu serwujesz zechce użyć innego, wtedy by musiał cały kod zmienić, żeby to zrobić , poza tym skoro to jest kontroler to powinien posiadać info o widoku ale widok nie powinien się tworzyć sam. Weźmy przykład bazy danych, chcesz ja wywołać np w 3 klasach, nie zależnych od siebie, to teraz dla każdej z nich musisz stworzyć nowa instancje, na nowo się połączyć etc...
osobiście nigdy nie używałem i nie mam problemu, wystarczy dobre IDE I tak na przyszłość nie mieszaj polskich nazw z angielskim bo wyjdzie z tego straszny bałagan i szybko sam się zgubisz angielski to jednak standard |
|
|
3.01.2016, 18:21:25
Post
#8
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
Model usera podobnie jak klasa Core jest jedynie abstrakcją inicjującą połączenie z bazą, Model tworzy instancję i sprawdza jej stan nie pozwalając na ponowne ustanowienie połączenia z tą samą bazą danych.
Tworząc abstrakcyjny Model2 mogę uruchomić całkowicie inną bazę danych, może to na wyrost zrobiłem ale tak samo wyszło. Co do obsługi bazy to miałem wcześniej zaimplementowane RedBeanPHP ale przemyślałem sprawę że armata na muchę nie jest mi potrzebna dlatego zmieniłem szybko model na PDO, oczywiście brancha z RedBeanPHP zachowałem w razie czego ... I tak na przyszłość nie mieszaj polskich nazw z angielskim bo wyjdzie z tego straszny bałagan i szybko sam się zgubisz angielski to jednak standard Wykorzystuję w tym projekcie pojedyncze klasy, które kiedyś napisałem, ale powoli zmienię nazewnictwo w jednym stylu czyli tak jak piszesz. Ten post edytował LowiczakPL 3.01.2016, 18:26:28 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
3.01.2016, 18:42:01
Post
#9
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
No właśnie tworząc Model2 a ja nie chcę Modelu2 tylko zrobić to w Model, a się w takim przypadku nie da Ograniczasz i zamykasz swój kod wokół jednej słusznej implementacji co nie jest dobre
a wystarczyło by zrobić tak:
Cytat Wykorzystuję w tym projekcie pojedyncze klasy, które kiedyś napisałem, ale powoli zmienię nazewnictwo w jednym stylu czyli tak jak piszesz. Jasne, rozumiem Ten post edytował com 3.01.2016, 18:42:15 |
|
|
3.01.2016, 22:37:25
Post
#10
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa |
Zapoznaj się z http://www.php-fig.org/
|
|
|
3.01.2016, 22:40:29
Post
#11
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
pisałem przecież o tym , ale nie dałem linka
|
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 23:42 |