Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Proste MVC w czystym php
Forum PHP.pl > Forum > Przedszkole
michuwsh
Cześć szukam pomocy ponieważ pisze sobie proste aplikacje w php oparta o model mvc mój Router aplikacji wczytuje z adresu url odpowiedni kontroler który później steruje odpowiednimi modułami mojej aplikacji. Mój problem polega na tym że stworzyłem sobie kontroler admin który będzie odpowiadał za zalogowanie się do aplikacji w tym celu skierowałem w kontrolerzy akcje login która przenosi mnie do widoku w którym jest formularz do zalogowania no i właśnie w tym miejscu utknelem. Doczytałem na Internecie że dane z formularza trzeba przesłać z widoku do kontrolera a później do modelu tylko nie wiem jak to zrobić czy robi się to przez parametr Edition formularza ? Proszę o pomoc.
SmokAnalog
Bierzesz się za MVC, a nie znasz HTML-a?
michuwsh
Znam html od 3 lat pracuje jako fontend developer wiem że normalnie robi się to przez atrybut action dla formularza ale do jakiego pliku to przesłać żeby kontroler otrzymał tablice POST a później model ?
SmokAnalog
Kontrolery mogą korzystać z globalnej klasy albo helpera, możesz też się bawić w dependency injection, ale moim zdaniem nie ma potrzeby. Wystarczy mieć klasę, np. Input, która mogłaby być tylko wrapperem na $_GET i $_POST, np. Input::get(), Input::post(), Input::get('user-id') itd.
michuwsh
A można poprosić o jakiś przykład bo ja narazie raczkuje w obiektowce
SmokAnalog
Na przykład coś takiego:

  1. class Input {
  2. protected static function value(array $array, $key = null, $default = null)
  3. {
  4. return $key === null ? $array : ($array[$key] questionmark.gif $default);
  5. }
  6.  
  7. public static function get($key = null, $default = null)
  8. {
  9. return static::value($_GET, $key, $default);
  10. }
  11.  
  12. public static function post($key = null, $default = null)
  13. {
  14. return static::value($_POST, $key, $default);
  15. }
  16. }


Sposób użycia:

Input::get() - wszystkie wartości GET
Input::post() - wszystkie wartości POST
Input::get('cokolwiek') - wartość $_GET['cokolwiek'] lub null, jeśli nie istnieje
Input::post('cokolwiek') - wartość $_POST['cokolwiek'] lub null, jeśli nie istnieje
Input::get('cokolwiek', 'jagoda') - wartość $_GET['cokolwiek'] lub "jagoda", jeśli nie istnieje
Input::post('cokolwiek') - wartość $_POST['cokolwiek'] lub "jagoda", jeśli nie istnieje


EDIT

questionmark.gif to dwa znaki zapytania obok siebie. Widzę, że to forum nadal nie ogarnia, że w kodzie nie chcemy emotikonek biggrin.gif
viking
Ja zawsze podkreślam że jeśli nie masz wiedzy to nie ma sensu pisać własnego rozwiązania. Zobacz jak to robią lepsi, naucz się wcześniej trochę pisząc zgodnie z wymuszonym standardem i dopiero wtedy możesz myśleć o samodzielnym pisaniu. Nie, tworząc taki kod nic się więcej nie nauczysz a tylko spotęgujesz błędy.
Tomplus
@SmokAnalog
Jak to się nie da? Da się, da na tym forum

  1. class Input {
  2. protected static function value(array $array, $key = null, $default = null)
  3. {
  4. return $key === null ? $array : ($array[$key] ?? $default);
  5. }
  6. }



Wystarczy wyłączyć opcję: WŁACZ UŚMIESZKI.
SmokAnalog
Aha. Ale i tak lipa, że uśmieszki są parsowane w kodzie.
michuwsh
Cytat(viking @ 21.06.2019, 14:57:56 ) *
Ja zawsze podkreślam że jeśli nie masz wiedzy to nie ma sensu pisać własnego rozwiązania. Zobacz jak to robią lepsi, naucz się wcześniej trochę pisząc zgodnie z wymuszonym standardem i dopiero wtedy możesz myśleć o samodzielnym pisaniu. Nie, tworząc taki kod nic się więcej nie nauczysz a tylko spotęgujesz błędy.

Przepisywanie czyjegoś kodu to dla mnie nie ma sensu a już tym bardziej gdy się nie wie o co w nim chodzi.
Rozumiem że muszę stworzyć nową klasę do odbierania danych i przekazywania ich do kontrolera ? A co z atrybutem action w moim formularzu do jakiego pliku ma być przesyłany?
SmokAnalog
Viking ma dużo racji. Te pytania świadczą o tym, że nie masz zielonego pojęcia o MVC i pewnie o PHP też niewielkie. Zacznij od nauki podstaw, a potem baw się w swoje frameworki.
viking
A kto mówi o przypisywaniu? Masz zacząć korzystać z jakiegoś fw poczttać dokumentację, ogarnąć podstawy tworzenia aplikacji. Łatwy ma start jest laravel.
Tomplus
Tak naprawdę nie musi być to w ogóle framework, wystarczy cokolwiek. Bo nauka FW dla samej nauki nic nie daje, ale musi być jakiś cel, co chce się osiągnąć. Zaczynając od podstaw wystarczy może wystarczyć jakiś SLIM framework albo fat-free, albo AURA framework.

Lekkie i proste, a jeżeli będzie mało, to dopiero Laravel.


@SmokAnalog
Właśnie to kolejna głupotka, że nawet nie można interweniować w kod forum, bo nie mamy dostępu aby wykluczyć parsowanie w tagach specjalistycznych.
com
Jak powstawał skrypt forum to nie było jeszcze operatora ?? :P
SmokAnalog
Cytat(com @ 2.07.2019, 11:10:25 ) *
Jak powstawał skrypt forum to nie było jeszcze operatora questionmark.gif tongue.gif

Wiem właśnie oneeyedsmiley02.png Ale i tak głupota, że cokolwiek tam jest zamieniane na uśmieszki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.