MVC w praktyce tworzymy system artykułów. cz. 2

Podobne dokumenty
Bazy danych. dr Radosław Matusik. radmat

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Laboratorium 6 Tworzenie bloga w Zend Framework

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

MVC w praktyce tworzymy system artykułów. cz. 1

Zajęcia 13 wykorzystanie MySQL w PHP cz. 2

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Szablon główny (plik guestbook.php) będzie miał postać:

SIECI KOMPUTEROWE I BAZY DANYCH

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 1 Wprowadzenie do PHP

Dynamiczne generowanie pliku PDF

Wprowadzenie do Internetu Zajęcia 5

4 AS SP.NET MVC. Widok. Zaawansowane programowanie internetowe Instrukcja nr 4

Podstawy wzorca MVC MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

Podstawy JavaScript ćwiczenia

Baza danych do przechowywania użytkowników

Wprowadzenie do framework a Symfony

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

Formularze w PHP dla początkujących

media Blitz wydajne sytemy szablonów

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

Przykładowa integracja systemu tpay.com KIP S.A. ul. Św. Marcin 73/ Poznań.

prepared by: Programowanie WWW Model-View-Controller

Podstawowe wykorzystanie Hibernate

Współpraca PHP z MySql

Aplikacje WWW - laboratorium

Kompozycja Proceduralna

SSK - Techniki Internetowe

Aplikacje WWW - laboratorium

Sierpień 2015 rozwiązanie plik: index.htlm

Programowanie zorientowane obiektowo. Mateusz Kołecki

Hurtownia Świętego Mikołaja projekt bazy danych

Zajęcia 11 wykorzystanie MySQL w PHP

Aplikacje internetowe - laboratorium

Aplikacje internetowe

Dokumentacja Skryptu Mapy ver.1.1

SIECI KOMPUTEROWE I BAZY DANYCH

Obiektowe bazy danych

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Aplikacje WWW - laboratorium

Przykładowa integracja systemu Transferuj.pl

Zajęcia 4 - Wprowadzenie do Javascript

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Na początku utworzymy formularz w czystym języku HTML i przetestujemy go za pomocą przeglądarki WWW.

Projekt strony internetowej firmy organizującej przyjęcia

Quiz Aplikacja internetowa

Wprowadzenie do framework a Symfony

PHP zaawansowane programowanie

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Bazy danych. dr inż. Arkadiusz Mirakowski


Budowa aplikacji wielowarstwowych. Zastosowanie szablonów

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Internetowe bazy danych

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Rejestracja i Logowania - PHP/MySQL

Język PHP. Studium Podyplomowe Sieci Komputerowe i Aplikacje Internetowe. v1.7, 2007/11/23

Wykład 2 TINT. XHTML tabele i ramki. Zofia Kruczkiewicz

Formularze HTML. dr Radosław Matusik. radmat

Podstawy (X)HTML i CSS

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr Prosta obsługa Bazy w PHP

Zaawansowany kurs języka Python

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

Zdarzenia Zdarzenia onload i onunload

Poszczególne elementy serwisu można umieścić dla porządku w odpowiednio przemyślanym drzewie katalogów, i tak: -

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Programowanie w Internecie. Podstawy użycia JSP. Paweł Kasprowski. vl06z

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji src/ - folder zawiera cały kod PHP aplikacji

Aplikacje WWW - laboratorium

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Laboratorium Kierunki Rozwoju oprogramowania REST, Django

Aplikacje WWW - laboratorium

Facelets ViewHandler

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa

Modele danych walidacja widoki zorientowane na model

Internetowe bazy danych

Walidacja danych w ASP.NET MVC

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1

prepared by: Programowanie WWW Servlety

3. Silnik MVC Opis rozdziału Organizacja plików. Mini poradnik: Jak stworzyć grę via WWW.

NoSQL Not Only SQL: CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Przetwarzanie dokumentów i widoków.

E.14 Bazy Danych cz. 19 SQL i PHP współpraca przez stronę internetową

Kompresja stron internetowych

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Wykład 03 JavaScript. Michał Drabik

Ilość cyfr liczby naturalnej

INSTALACJA I KONFIGURACJA SERWERA PHP.

Pozycjonowanie i poruszanie warstw

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Przykład integracji kalkulatora mbank RATY na platformie IAI

Programowanie internetowe

BAZA DANYCH SIECI HOTELI

Komunikacja między klientem, a skryptem PHP, oraz operacje na plikach

PRÓBNY EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE CZĘŚĆ PISEMNA

Transkrypt:

MVC w praktyce tworzymy system artykułów. cz. 2 W drugiej części artykułu o wzorcu MVC stworzymy część skryptu, odpowiedzialną za obsługę kategorii. Tworzymy kontroler kategorii Na początek stwórzmy plik index.php w głównym katalogu: include 'controller/categories.php'; if($_get['task']=='categories') { $ob = new CategoriesController(); $ob->$_get['action'](); Na podstawie zmiennej $_GET['task'] tworzony jest odpowiedni obiekt kontrolera (w tym wypadku CategoriesController). Zmienna $_GET['action'] określa z kolei akcję kontrolera. Co robi kontroler? Na podstawie przekazanych wartości zmiennych (z adresu lub pól formularza) wybiera odpowiednią akcję skryptu oraz inicjuje odpowiednie modele i widoki. Kontroler nie powinien obrabiać danych. Ma on za zadanie tylko wywoływać odpowiednie reakcje logiki aplikacji oraz widoku odpowiedzialnego za wyświetlanie informacji. Przyjrzyjmy się plikowi controller/categories.php: * @author Łukasz Socha <> include 'controller/controller.php'; class CategoriesController extends Controller{ public function index() { $view=$this->loadview('categories'); $view->index(); public function add() { $view=$this->loadview('categories'); $view->add(); public function insert() { $model=$this->loadmodel('categories'); $model->insert($_post); $this->redirect('?task=categories&action=index'); 1/5

public function delete() { $model=$this->loadmodel('categories'); $model->delete($_get['id']);; $this->redirect('?task=categories&action=index'); Przeanalizujmy reakcje dla następujących adresów URL:?task=categories&action=index zostanie wywołana metoda index(), która inicjuje obiekt widoku categories, następnie zostaje wywołana metoda index()?task=categories&action=add zostanie wywołana metoda add(), która inicjuje obiekt widoku categories, następnie zostaje wywołana metoda add()?task=categories&action=insert zostanie wywołana metoda insert(), która inicjuje obiekt modelu categories, następnie zostaje wywołana metoda insert()?task=categories&action=delete zostanie wywołana metoda delete(), która inicjuje obiekt modelu categories, następnie zostaje wywołana metoda delete() Mamy już utworzony kontroler. Przejdźmy teraz do modelu. Tworzymy model kategorii Model jest najbardziej istotnym elementem we wzorcu MVC to on jest odpowiedzialny za logikę aplikacji. Ma za zadanie pobieranie/edycję danych z bazy danych (lub innych źródeł) oraz przetworzenie ich według wymagań skryptu, np: poddać filtracji, wykonać obliczenia itp. Przeanalizujmy plik model/categories.php: * @author Łukasz Socha <> include 'model/model.php'; class CategoriesModel extends Model{ public function insert(&$data) { $ins=$this->pdo->prepare('insert INTO categories (name) VALUES (:name)'); $ins->bindvalue(':name', $data['name'], PDO::PARAM_STR); $ins->execute(); public function getall() { return $this->select('categories'); 2/5

public function delete(&$id) { $del=$this->pdo->prepare('delete FROM categories where id=:id'); $del->bindvalue(':id', $id, PDO::PARAM_INT); $del->execute(); Wszystkie 3 metody mają za zadanie dodanie, usunięcie oraz pobranie danych z tabeli categories. Pozostaje nam jeszcze widok. Tworzymy widok kategorii Głównym zadaniem widoku jest odebranie przetworzonych danych od modelu i wyświetlenie ich w odpowiedni sposób. Wiele osób uważa widok za szablon HTML, ale nie jest to do końca prawdą. Równie dobrze widok może generować np. dokumenty PDF. Tak będzie wyglądać plik view/categories.php: * @author Łukasz Socha <> include 'view/view.php'; class CategoriesView extends View{ public function index() { $cat=$this->loadmodel('categories'); $this->set('catsdata', $cat->getall()); $this->render('indexcategory'); public function add() { $this->render('addcategory'); Metoda index() pobiera dane wszystkich kategorii z modelu za pomocą getall() i renderuje odpowiedni plik z szablonem HTML. Z kolei add() renderuje plik HTML z formularzem dodawania kategorii. Na koniec tej części stwórzmy jeszcze pliki szablonów. templates/header.html.php: <html> <head> 3/5

<title>system newsów</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link href="css/style.css" rel="stylesheet" type="text/css" /> </head> <body> <ul> <li><a href="?task=categories&action=add">dodaj kategorię</a></li> <li><a href="?task=categories&action=index">lista kategorii</a></li> </ul> templates/footer.html.php: </body> </html> templates/indexcategory.html.php: <? include 'templates/header.html.php';?> <h1>lista kategorii</h1> <table> <tr> <td>nazwa</td> <td> </td> </tr> <? foreach($this->get('catsdata') as $cats) {?> <tr> <td><?= $cats['name'];?></td> <td><a href="?task=categories&action=delete&id=<?= $cats['id'];?>">usuń</a></td> </tr> <??> </table> <? include 'templates/footer.html.php';?> addcategory.index.php: <? include 'templates/header.html.php';?> <h1>dodaj kategorię</h1> <form action="?task=categories&action=insert" method="post"> Nazwa kategorii: <input type="text" name="name" /><br /> <input type="submit" value="dodaj" /> </form> 4/5

<? include 'templates/footer.html.php';?> Tak stworzyliśmy część kodu odpowiedzialną za kategorie artykułów. W trzeciej, ostatniej części zajmiemy się samymi artykułami. 5/5