Samouczek PHP MVC Framework: Przykład CodeIgnitera

Spisie treści:

Anonim

Co to jest framework PHP MVC?

PHP MVC to wzorzec projektowy aplikacji, który oddziela dane aplikacji i logikę biznesową (model) od prezentacji (widoku). MVC oznacza model, widok i kontroler.

Kontroler pośredniczy między modelami i widokami.

Pomyśl o wzorcu projektowym MVC jak o samochodzie i kierowcy.

Samochód ma przednie szyby (widok), których kierowca (kontroler) używa do monitorowania ruchu przed nim, a następnie prędkości lub hamowania (model) w zależności od tego, co widzi przed sobą.

Dlaczego warto korzystać z PHP MVC Framework?

  • Struktury PHP MVC upraszczają pracę ze złożonymi technologiami poprzez;
    • Ukrywanie wszystkich skomplikowanych szczegółów implementacji
    • Dostarczanie standardowych metod, których możemy użyć do budowania naszych aplikacji.
    • Zwiększona produktywność programistów, ponieważ podstawowa implementacja działań, takich jak łączenie się z bazą danych, oczyszczanie danych wejściowych użytkownika itp., Jest już częściowo zaimplementowana.
    • Przestrzeganie profesjonalnych standardów kodowania

W tym samouczku nauczysz się:

  • Wzorzec projektowy PHP MVC
  • Rodzaje frameworka PHP MVC
  • Przeniesienie aplikacji ankietowej do CodeIgniter
  • Ustawienia konfiguracji bazy danych
  • Tworzenie naszego modelu
  • Tworzenie naszych poglądów
  • Testowanie naszej aplikacji

Wzorzec projektowy PHP MVC

Omówmy teraz pokrótce każdy składnik wzorca projektowego MVC.

Model - ta część dotyczy logiki biznesowej i danych aplikacji. Może służyć do sprawdzania poprawności danych, przetwarzania danych i ich przechowywania. Dane mogą pochodzić z;

  • plik płaski
  • Baza danych
  • Dokument XML
  • Inne ważne źródła danych.

Kontroler - jest to część zajmująca się żądaniami użytkowników o zasoby z serwera.

Na przykład, gdy użytkownik zażąda adresu URL… /index.php?products=list, kontroler załaduje model produktów, aby pobrać dane produktów, a następnie wyświetli wyniki w widoku listy.

Krótko mówiąc, kontroler łączy ze sobą modele i widoki w zależności od żądanych zasobów.

Widoki - ta część dotyczy prezentacji danych użytkownikowi. Zwykle ma to postać stron HTML.

Rodzaje frameworka PHP MVC

Wybór najlepszego frameworka PHP jest wyzwaniem.

Nie musisz pisać własnego frameworka, aby skorzystać z zalet MVC.

Należy tylko próbować utworzyć własny projekt aplikacji powiązany z MVC, aby zrozumieć, jak działają struktury MVC.

Gdy już zaznajomisz się ze sposobem działania frameworków MVC, powinieneś przejść do dojrzałych i już przetestowanych frameworków.

Poniższa tabela pokrótce opisuje niektóre z popularnych frameworków php i funkcje, które oferuje każdy framework.

Struktura Opis
CodeIgniter https://codeigniter.com/ Jest to jeden z najpopularniejszych frameworków PHP MVC. Jest lekki i ma krótką krzywą uczenia się. Zawiera bogaty zestaw bibliotek, które pomagają w szybkim tworzeniu witryn internetowych i aplikacji. Użytkownicy z ograniczoną wiedzą na temat programowania OOP również mogą z niego korzystać. Aplikacje oparte na CodeIgniter obejmują;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org Jest to bezpieczna i lekka struktura Hierarchical Model View Controller HMVC. Posiada bogaty zestaw komponentów do szybkiego tworzenia aplikacji. Firmy korzystające z Kohana obejmują;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org Wzorowany na Ruby na szynach. Jest znany z takich koncepcji, jak wzorce projektowania oprogramowania, konwencja nad konfiguracją, ActiveRecord itp. Aplikacje oparte na CakePHP obejmują;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend To jest potężna struktura;
  • Bezpieczne, niezawodne, szybkie i skalowalne
  • Obsługuje Web 2.0 i tworzenie usług internetowych.
Zawiera interfejsy API od dostawców takich jak Amazon, Google, Flickr, Yahoo itp. Jest idealny do tworzenia aplikacji biznesowych. Aplikacje oparte na Zend obejmują;
  • Pimcore CMS,
  • DotKernel.
Firmy używające frameworka Zend obejmują;
  • BBC
  • Cisco
  • Webex
  • Oferty.com

Przeniesienie aplikacji ankietowej do CodeIgniter

W tym samouczku stworzyliśmy aplikację ankietową PHP. Tutaj przeniesiemy ten kod do CodeIgniter

  • Pobierz najnowszą wersję CodeIgniter z ich strony internetowej.
  • Rozpakuj zawartość spakowanego pliku do katalogu programistycznego w katalogu serwera WWW. W tej lekcji użyjemy ciopinionpoll jako nazwy folderu.
  • Przejdź do adresu URL http: // localhost / ciopinionpoll /

Teraz zamierzamy przenieść naszą aplikację ankietową do CodeIgniter. Przypomnijmy, że nasza aplikacja została podzielona na trzy główne komponenty, a mianowicie;

  • Kontroler frontowy - jest to część, która odpowiada na żądania adresu URL i zwraca żądaną stronę. Ten kod trafi do kontrolera
  • Model - jest to kod, który odpowiada na żądane dane i zwraca żądane dane. Ten kod trafi do modelu
  • Widoki - to kod odpowiedzialny za formatowanie i wyświetlanie danych. Ten kod przejdzie do widoku
    • Przejdź do folderu ciopinionpoll
    • Otwórz plik database.php znajdujący się w katalogu application / config.
    • Zlokalizuj następujące wiersze kodu

Ustawienia konfiguracji bazy danych

  • Ustaw nazwę użytkownika na root
  • Ustaw hasło na hasło głównego hosta lokalnego
  • Nazwa bazy danych do opinii_pol. Zauważ, że będziemy używać bazy danych utworzonej w poprzedniej lekcji.
  • Zapisz zmiany i zamknij plik.

Tworzenie naszego modelu

Następnie stworzymy nasz model, który rozszerzy CI_Model. CI_Model jest częścią bibliotek CodeIgniter. Model zostanie umieszczony w application / models Opinion_poll_model.php

load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?>

TUTAJ,

  • „Class Opinion_poll_model extends CI_Model…” to nasz model, który rozszerza CI_Model
  • „… Rodzic :: __construct ();” wywołuje konstruktora CI_Model
  • „$ This-> load-> database ();” ładuje bibliotekę bazy danych, aby nasza aplikacja mogła współdziałać z bazą danych
  • „$ This-> db->” to aktywny rekord CodeIgniter. Sprawdź to łącze, aby uzyskać więcej informacji na temat aktywnego rekordu.

Tworzenie naszego kontrolera Stwórzmy teraz kontroler. Użyjemy domyślnego kontrolera CodeIgniter znajdującego się w application / controllers / welcome.php. Zastąp jego kody źródłowe następującym kodem.

load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>

TUTAJ,

  • „If (! Define ('BASEPATH')) exit ('Brak bezpośredniego dostępu do skryptu');” zapewnia, że ​​użytkownicy nie mają bezpośredniego dostępu do klasy kontrolera
  • „Class Welcome extends CI_Controller…” nasz kontroler rozszerza klasę CI_Controller
  • „Funkcja publiczna __construct ()” wywołuje metodę konstruktora klasy CI_Controllera i ładuje nasz model Opinion_poll_model
  • „Public function index ()…” to funkcja, która odwzorowuje plik index.php. używa klasy wejściowej CodeIgniter, aby sprawdzić, czy głos został wysłany, dodaje go do bazy danych, a następnie wyświetla wyniki. Jeśli tablica postów klasy wejściowej jest pusta, ładuje stronę głosowania.
  • „$ This-> input-> post ('…')” to klasa wejściowa CodeIgniter, która pobiera zawartość zmiennej globalnej $ _POST.
  • „$ This-> Opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))” wywołuje metodę add_vote modelu, aby dodać głos do bazy danych.

Tworzenie naszych poglądów

Przypomnij sobie z poprzedniego przykładu, że mieliśmy dwie strony HTML, jedną do głosowania, a drugą do wyników. Będziemy używać tego samego kodu HTML z minimalnymi modyfikacjami do tworzenia naszych widoków. Utwórz następujące pliki w katalogu application / views

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Utwórzmy teraz stronę wyników results.php

JavaScript Libraries - Opinion Poll Results

JavaScript Libraries - Opinion Poll Results

What is your favorite JavaScript Library?

people have thus far taken part in this poll:

Return to voting page

Testowanie naszej aplikacji

Zakładając, że katalog główny twojej aplikacji to ciopinion, przejdź do http: // localhost / ciopionpoll /

Kliknij przycisk OK, zobaczysz następujący komunikat ostrzegawczy

Zagłosuj na swojego ulubionego kandydata, a następnie kliknij przycisk OK. Zostanie wyświetlona następująca strona wyników

Wniosek

CodeIgniter to łatwa do nauczenia się i używania frameworka PHP MVC, która może znacznie skrócić czas poświęcany na tworzenie aplikacji.

Podsumowanie

  • Framework to zestaw bibliotek, które zapewniają częściową realizację typowych zadań.
  • PHP ma wiele dojrzałych i przetestowanych frameworków MVC o otwartym kodzie źródłowym.
  • Dobre podejście programistyczne oddziela dane od prezentacji i zachęca do korzystania z jednego punktu wejścia do aplikacji.
  • Tradycyjne aplikacje PHP, które są zgodne z najlepszymi praktykami projektowania aplikacji, można przenosić do struktur MVC przy minimalnych modyfikacjach.