Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Poprawność MVC
Ubermade
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 30.11.2017
Skąd: Leszno, Poland

Ostrzeżenie: (0%)
-----


Witam! Napisałem ostatnio wzorzec MVC w php i mam pewną obawę, że ciut źle zacząłem go używać. Może pokażę na przykładzie.

Mam tutaj funkcję w kontrolerze, która odpowiada za dodawanie kategorii:

  1. public function add(){
  2. Access::logged();
  3. $view = new \Ubermade\view\CategoryView();
  4. if(empty($_POST)){
  5. $view->renderHTML('add', 'front/category/');
  6. }else{
  7. $model = new \Ubermade\model\CategoryModel();
  8. $utilities = new \Ubermade\utilities\CategoryUtilities();
  9. $items = $utilities->add($_POST['name'], $model->getByName($_POST['name']));
  10. if($items){
  11. $model->add($_POST);
  12. RouterUtilities::redirect(RouterUtilities::generateUrl('category/list'));
  13. }else{
  14. $view->renderHTML('add', 'front/category/');
  15. }
  16. }
  17. }


W swoim projekcie zastosowałem pewnego rodzaju "pomocników", którzy zajmują się przetwarzaniem, oraz uwierzytelnianiem podanych informacji. W tym przypadku odnoszę się do klasy "CategoryUtilities" do funkcji"add", która wygląda następująco:

  1. public function add($name, $database){
  2. $check = true;
  3.  
  4. if($database){
  5. $check = false;
  6. Session::set('e_category_repeat', true);
  7. }
  8. if(strlen($name) < 1){
  9. $check = false;
  10. Session::set('e_category_length', true);
  11. }
  12.  
  13. iF($check){
  14. return true;
  15. }else{
  16. return false;
  17. }
  18. }


I tutaj się rodzi pytanie... Czy używanie takich "pomocników" jest zgodny ze wzorcem MVC, czy jednak taki kod powinno się pakować gdzie indziej, np modelu.
Jeżeli chodzi o nazwę "items" w kontrolerze, mimo, że może mieć ona jedynie wartość 1, to czasami, np: w dodawaniu użytkownika, mój "pomocnik" hashuje hasło, zwraca je do kontrolera, który później przesyła je modelu i do bazy danych.

Z góry dziękuję za pomoc (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
athabus
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Jesli to ma byc podstawa takiego miniframeworka mvc to wielu rzeczy mi tu brakuje typu obiekty request/response itd. Tacy "pomocnicy" sa ok, ale strasznie wszystko mieszasz w klasach - wyglada to troche jak programowanie strukturalne przeniesione do obiektow.
Robilem ostatnio podobne zadanie "szkoleniowe" - jak chcesz to moge Ci na pw pokazac jak.taki framework mvc strony moglby wygladac.
Go to the top of the page
+Quote Post
Ubermade
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 30.11.2017
Skąd: Leszno, Poland

Ostrzeżenie: (0%)
-----


Cytat(athabus @ 3.09.2018, 21:52:00 ) *
Jesli to ma byc podstawa takiego miniframeworka mvc to wielu rzeczy mi tu brakuje typu obiekty request/response itd. Tacy "pomocnicy" sa ok, ale strasznie wszystko mieszasz w klasach - wyglada to troche jak programowanie strukturalne przeniesione do obiektow.
Robilem ostatnio podobne zadanie "szkoleniowe" - jak chcesz to moge Ci na pw pokazac jak.taki framework mvc strony moglby wygladac.

Jasne, fajnie by było (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
athabus
post
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Ok to postaram sie jutro po pracy podeslac. Napisz mi tylkoczy ogarniasz takie rzeczy jak git, composer, doctrine, kontener di - bo mam wersje basic i taka bardziej oop po refactoringu z moim przelozonym. Wersja poczatkowa jest taka "poprawna ale prosta jak kij od szczotki", koncowa bardziej oop. Nawet ta poczatkowa mysle ze by Ci pozwolila troche poprawic kod, ale koncowa to juz calkiem fajny kod oop przynajmniej jak na moj obecny poziom, tyle ze juz bardziej zlozona.
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Z pierd, ale z takich pierd co ladnie ci poprawia kod to

nie:
  1. iF($check){
  2. return true;
  3. }else{
  4. return false;
  5. }


a poprostu:
  1. return $check;
Go to the top of the page
+Quote Post
athabus
post
Post #6





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Haha mój popisowy numer. Na pierwszym code review potrzebowałem minuty, żeby odpowiedzieć na pytanie co tu jest nie tak (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Ubermade
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 30.11.2017
Skąd: Leszno, Poland

Ostrzeżenie: (0%)
-----


jest to jedynie napisany na szybko przykład (IMG:style_emoticons/default/wink.gif) Bardzo często zwracam wartości takie jak zahashowane hasło itp (IMG:style_emoticons/default/wink.gif) Ale sam fakt, taka pierdoła poprawiłaby kod (IMG:style_emoticons/default/wink.gif)

Cytat(athabus @ 3.09.2018, 22:08:33 ) *
Ok to postaram sie jutro po pracy podeslac. Napisz mi tylkoczy ogarniasz takie rzeczy jak git, composer, doctrine, kontener di - bo mam wersje basic i taka bardziej oop po refactoringu z moim przelozonym. Wersja poczatkowa jest taka "poprawna ale prosta jak kij od szczotki", koncowa bardziej oop. Nawet ta poczatkowa mysle ze by Ci pozwolila troche poprawic kod, ale koncowa to juz calkiem fajny kod oop przynajmniej jak na moj obecny poziom, tyle ze juz bardziej zlozona.

Cóż, ogarniam takie rzeczy, jak git i composer, ale co do reszty to tylko słyszałem o nich (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 03:53