• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Framework CodeIgniter - Jak obsługiwać formularze/połączenie z bazą danych oraz czy dobrze rozumiem MVC?

0 głosów
415 wizyt
pytanie zadane 22 kwietnia 2018 w PHP przez Lucjuszewski Nowicjusz (120 p.)

Mam kilka pytań odnośnie frameworka CodeIgniter i MVC na których pytań wystarczająco zrozumiałych i aktualnych nie znalazłem. Jeśli ktoś ma chęć pomóc, to z pewnością się odwdzięczę :) 

  • Jak wygląda tutaj "deklarowanie" formularzy oraz ich obsługa? Jak mam wrażenie formularze należy nie wykonywać poprzez tagi <form></form> tylko funkcję form_open() ale co dalej? Nie potrzeba zamknąć w jakiś sposób tego formularza inną funkcją? Jak widziałem na dosyć starym poradniku to do form_open trzeba podać argument 'kontroler/metoda' i tutaj moje następne pytanie. Czy mogę wysłać dane do całego kontrolera? Czy wysłane dane poprzez 'kontroler/metoda' będą dostępne tylko dla metody którą tam wpisze? Wiem że najprawdopodobniej jest to banalne pytanie ale chciałbym rozumieć sam 'proces' tego jak to wygląda.
  • Czy jeżeli w normalnym, czystym PHP łączyłem się z bazą za pomocą PDO to w frameworku CI mam z niego zrezygnować? Z tego co mi się wydaje są tam ich 'autorskie' funkcje do łączenia się z bazą i wykonywania zapytań. Jak to wygląda przy użyciu frameworków?
  • Skoro jest podział na Model, Widok i Kontroler to jak to wygląda w praktyce? Formularz powinien być w widoku, przesyłane dane mają dostać się do kontrolera który ma za zadanie TYLKO odbierać dane i wywoływać funkcję modelu, który wcześniej dostaje od niego dane do walidacji/wysłania zapytania/czegokolwiek?

Chyba to na tyle, z góry dziękuje jeśli komuś chciałoby się poukładać kilka faktów zielonemu :P 

komentarz 22 kwietnia 2018 przez Ehlert Ekspert (207,390 p.)
Czemu akurat CI?
komentarz 22 kwietnia 2018 przez Lucjuszewski Nowicjusz (120 p.)
Szczerze mówiąc, to chyba najbardziej odchudzony i najprostszy framework więc go wybrałem żeby zrozumieć jak to wszystko działa. Sugerujesz że powinienem zainteresować sie innym? Myślałem też nad Symfony i Laravel ale to są frameworki do chyba większych projektów niż jak ja zakładam. Oczywiście jestem otwarty na sugestie więc radź śmiało ;)
komentarz 22 kwietnia 2018 przez Ehlert Ekspert (207,390 p.)
  • Symfony 
  • Lumen 
  • Slim

Oczywiście Composer z dostępnych paczek pozwala Ci budować własne szkielety aplikacji.  

komentarz 22 kwietnia 2018 przez Lucjuszewski Nowicjusz (120 p.)
Okej, dzięki najprawdopodobniej przejrzę sobie dzisiaj dokumentację Symfony i ją przetestuje, w razie czego się odezwę :)
komentarz 31 sierpnia 2018 przez efiku Szeryf (75,420 p.)
CI to trup. Nieważne jak bardzo sobie go będą rozwijać jest lata świetlne za obecnymi framwerowkami. Slim jest mikro a jak sprawdzasz SF to z dokumentacji nauczysz się co i jak.

2 odpowiedzi

0 głosów
odpowiedź 31 sierpnia 2018 przez Ergo Proxy Użytkownik (640 p.)
CI daje Ci tylko możliwości. Prawie nic na Tobie nie wymusza. Jeżeli wolisz pisać formularze w standardowy sposób (czyli <form></form>) to nie widzę żadnych przeszkód. Sam tak piszę i działa :P

Kontroler/metoda - to jest routing przyjety w zdecydowanej wiekszości wszystkich frameworków ogólnie (nie tylko tych do php). Przesyłasz do konkretnej metody, ale jak nie wpiszesz żadnej metody to chyba domyślnie przesyła do metody index. Ale zalecam przesyłanie do konkretnych metod, bo niekiedy będziesz miał potrzebę do jednego kontrolera przesłać kilka formularzy. Ogólnie nic nie stoi na przeszkodzie byś w danej metodzie wykonywał inne metody z tego kontrolera.

Z PDO możesz dalej korzystać. Ja wole funkcje CI do komunikacji z bazą danych, ale jeżeli Ty wolisz PDO to nie widze przeszkód.

Propo MVC to w skórcie jest tak jak piszesz. W praktyce np na systemie rejestracji to ja robię tak. W Widoku piszę formularz i wysyłam do funkcji w kontrolerze. Kontroler przekazuje dane z formularza do modelu, gdzie sprawdzam czy nie ma niebezpiecznych znaków, waliduję wszystkie pola formularza i jak sie wszystko zgadza to wysyłam do bazy danych zapytanie. I potem z modelu zwracam jakąś informację do kontrolera, który przekazuje tą informację o zalogowanym użytkowniku do widoku (wyskakuje okienko o sukcesie/porażce). Ogólnie jak najwięcej zrzucam na model, chociaż nie raz mam pokusę by jakąś logikę biznesową implementować w kontrolerze.
0 głosów
odpowiedź 31 sierpnia 2018 przez Tomek Sochacki Ekspert (228,920 p.)
Co do bazy to możesz używać PDO ale generalnie lepiej i często wygodniej stosować rozwiazania z frameworka.

Natomiast co do widoku to w sumie dzisiaj w ogóle często backend tylko wystawia API na jakiś endpointach, a front zupelnie niezależny od backendu po prostu to API wykorzystuje.

Sam kiedyś robiłem projekty z użyciem szablonów PHP czy node ale potem przekonałem się do calkowitego odizolowania frontu od backendu i jest to wg mnie o wiele wygodniejsze. Ponadto umożliwia to szybsze migrowanie między technologiami, np. podnosisz wersje php czy zmieniasz CI na Symfony i testujesz tylko API a front w ogole Cię nie interesuje. Tak samo w drugą stronę, migrujesz np. z angularjs do angular i w ogóle nie martwisz się o API.

Podobne pytania

0 głosów
2 odpowiedzi 243 wizyt
+1 głos
1 odpowiedź 247 wizyt
pytanie zadane 26 września 2016 w PHP przez Abel Mądrala (5,140 p.)
0 głosów
1 odpowiedź 171 wizyt
pytanie zadane 31 sierpnia 2016 w PHP przez mikra25 Użytkownik (580 p.)

87,976 zapytań

136,557 odpowiedzi

304,510 komentarzy

58,337 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...