zadanie7a
pdf > do ÂściÂągnięcia > download > ebook > pobieranie
 
Cytat
Ab igne ignem - z ognia ogień. (Cycero). (Cycero)
Start Zaćmienie, Zajecia 2, zaaowanane,
 
  Witamy

zadanie7a, MAMA, Praca dyplomowa, Nowy folder, Nowy folder
[ Pobierz całość w formacie PDF ]
//-->Aplikacje WWW - laboratoriumCakePHPCelem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującejarchitekturę szkieletową CakePHP. Ćwiczenie prezentuje podstawowe aspekty tworzeniaaplikacji w oparciu o architekturę szkieletową (ang.application framework)bazującą naparadygmacie Model-View-Controller (MVC). W ramach tutorialu powstanie prosta aplikacjazawierająca przykładowy kontroler, obiekty modelu, obiekty widoku oraz obiektypomocnicze. Zaprezentowane także zostaną przykłady wykorzystania funkcjonalnościwbudowanej w architekturę szkieletową (walidacja danych, odwzorowanie obiektowo-relacyjne, itp.)Ćwiczenie można wykonać na dowolnym komputerze, którym zainstalowano serwer HTTP(np. Apache) z obsługą PHP oraz bazę danych MySQL. Rozwiązania ćwiczeń omawianychw poniższym zestawie zostały przygotowane z wykorzystaniem pakietu XAMPP (wersja1.7.7, dostępnego pod adresem:UWAGA:CakePHP wykorzystuje bardzo wiele konwencji związanych z właściwymnazewnictwem elementów (kontrolerów, modeli, widoków). Wybór poszczególnych nazw dlaklas i plikówjest nieprzypadkowy,w celu płynnego wykonania tutorialu należy kierować sięściśle podanymi zaleceniami dotyczącymi nazw obiektów.1. Pobierz ze stronyhttps://github.com/cakephp/cakephp/downloadsaktualną stabilnąwersję architektury CakePHP (2.1.0) i rozpakuj archiwum do kataloguxampp/htdocs/cake2. Uruchom program XAMPP (serwer Apache i bazę danych MySQL), a następnieuruchom program phpMyAdmin (przyciskAdminna panelu kontrolnym programuXAMPP). Utwórz bazę danych o nazwiecakephp.Następnie, utwórz w baziedanychcakephptabelębookso następującym schemacie (upewnij się, że łańcuchyznaków będą kodowane w utf8_polish_ci, pole Collation)kolumnaidtitleauthorgenretyp i własnościINT UNSIGNED AUTO_INCREMENT PRIMARY KEYVARCHAR(50)VARCHAR(20)VARCHAR(20)Wprowadź do nowoutworzonej tabeli kilka przykładowych rekordów3. Przejdźdokatalogu/app/Config/iutwórzkopięplikudatabase.php.default.Nazwij nowy plikdatabase.php.Edytuj utworzonyplik i ustaw w zmiennej$defaultparametry logowania się do bazy danychvar$default =array('datasource' => 'Database/Mysql','persistent' => false,'host' => 'localhost','login' => 'root','password' => '','database' => 'cakephp','prefix' => '','encoding' => 'utf8',);4. Przejdź do stronyi upewnij się, że lokalna instalacja siępowiodła.5. Pierwszym krokiem ćwiczenia będzie utworzenie klasy modelu, która będziereprezentowała tabelę w bazie danych. Instancje klasy modelu będą odpowiadaływierszom w bazie danych. Przejdź do katalogu/app/Model/i utwórz w nim plikBook.php,a następnie umieść w pliku poniższy kod.<?phpclassBookextendsAppModel {var$name = 'Book';}?>6. W kolejnym kroku utworzysz najprostszy kontroler i wyposażysz go w metodęindex(),która zostanie automatycznie wywołana w odpowiedzi na żądanie HTTP.Kontroler dla modeluBookpowinien nosić nazwęBooksControlleri byćumieszczony w plikuBooksController.php,w katalogu/app/Controller.Przejdź do tego katalogu i utwórz wspomniany plik, wypełniając go poniższą treścią(akcjaset()służy do przekazania danych z kontrolera do widoku).<?phpclassBooksControllerextendsAppController {var$name = 'Books';var$helpers =array('Html','Form');functionindex() {$this->set('books', $this->Book->find('all'));}}?>7. Przejdź do stronyi sprawdź, czy strona działaprawidłowo.8. Przejdź do katalogu/app/Viewi utwórz nowy katalogBooks.Wejdź do nowegokatalogu i utwórz w nim szablon widoku o nazwie odpowiadającej nazwie akcji, któraaktywizuje dany widok (index.ctp). Umieść w pliku widoku poniższy kod:<h1>Books</h1><table><tr><th>Id</th><th>Title</th><th>Author</th><th>Genre</th><th></th></tr><?php foreach ($books as $book): ?><tr><td><?php echo $book['Book']['id']; ?></td><td><?php echo $this->Html->link($book['Book']['title'],array('action' => 'view', $book['Book']['id']));?></td><td><?php echo $book['Book']['author']; ?></td><td><?php echo $book['Book']['genre']; ?></td><td><?php echo $this->Html->link('Usuń',array('action' => 'delete', $book['Book']['id']),null, 'Czy jesteś pewna(y)?')?><?php echo $this->Html->link('Edytuj',array('action' => 'edit', $book['Book']['id']));?></td></tr><?php endforeach; ?></table>Przeanalizuj starannie powyższy przykład. Zobacz, w jaki sposób następuje przejęciedanych wysłanych przez kontroler. Zauważ różne sposoby wywołania metodyHtml→link()(Html to komponent pomocniczy rejestrowany automatycznie w każdejaplikacji). Uruchom aplikację i przejdź do adresu9. Akcje zdefiniowane w poprzednim widoku (view,delete, edit)nie zostałyjeszcze zdefiniowane. Przejdź do kontrolera i dodaj do definicji klasy poniższą metodęfunctionview($id) {$this->Book->id = $id;$this->set('book', $this->Book->read());}10. Przejdź do katalogu/app/View/Booksi utwórz nowy plik o nazwieview.ctp,a następnie umieść w nim poniższy kod, uruchom aplikację i przetestuj jego działanie.<ul><li><b>tytuł</b>:<?php echo $book['Book']['title']?></li><li><b>autor</b>:<?php echo $book['Book']['author']?></li><li><b>gatunek</b>:<?php echo $book['Book']['genre']?></li></ul><a href="/cake/books">powrót</a>11. W następnym kroku obsłużysz procedurę dodawania nowych krotek. Wróć dodefinicji kontrolera i umieść tam następującą funkcję:functionadd($data) {if(!empty($this->data)) {if($this->Book->save($this->data)){$this->Session->setFlash('Książka zosała dodana');$this->redirect(array('action'=>'index'));}}}12. Po zaimplementowaniu logiki dodawania nowych książek możesz przejść do widokuudostępniającego formatkę do dodawania książek. Utwórz w katalogu/app/View/Booksplikadd.ctpi umieść w nim:<h1>Dodaj książkę</h1><?php$options = array('dramat' =>'dramat', 'komedia' =>'komedia');$this->Form->create('Book');$this->Form->input('title');$this->Form->input('author');$this->Form->input('genre',array('options'=>$options, 'default'=>'dramat'));echo $this->Form->end('Zapisz');?>echoechoechoecho13. Wróć do plikuindex.ctpi przed znacznikiem<table>umieść linkumożliwiający przejście do formularza dodawania nowej książki.<p><?php echo $this->Html->link('Dodaj',array('action' => 'add')); ?></p>14. CakePHP zawiera bardzo bogaty silnik walidacji danych. Przejdź do edycji źródłaklasy modelu i wprowadź zmienną$validate,która zawiera reguły walidacji.Następnie, sprawdź, czy możesz dodać nowy rekord nie podając tytułu wydarzenia.var$validate = array('title' => array('rule' => 'notEmpty'));15. Następnym krokiem jest oprogramowanie akcji usuwania książek. Przejdź dokontrolera i dodaj metodę, która będzie wywoływana w momencie kliknięcia na linkUsuń.functiondelete($id) {if($this->Book->delete($id)) {$this->Session->setFlash('Książka została usunięta');$this->redirect(array('action' => 'index'));}}16. Ostatnią operacją CRUD która nie została jeszcze oprogramowana jest operacjaedycji. Przejdź do kataloguapp/View/Booksi utwórz plikedit.ctpznastępującą treścią:<h1>Edytuj książkę</h1><?php$options =array('dramat'=> 'dramat','komedia' => 'komedia');$this->Form->create('Book', array('action' => 'edit'));$this->Form->input('id', array('type' => 'hidden'));$this->Form->input('title');$this->Form->input('author');$this->Form->input('genre',array('options'=>$options, 'default'=>'dramat'));echo $this->Form->end('Zapisz');?>echoechoechoechoecho17. Edytuj kontroler aplikacji i dodaj logikę biznesową odpowiedzialną za edycję książek.functionedit($id = null) {$this->Book->id = $id;if(empty($this->data)) {$this->data = $this->Book->read();}else{if($this->Book->save($this->data)) {$this->Session->setFlash('Książka została zmieniona');$this->redirect(array('action' => 'index'));}}}18. CakePHP wykorzystuje mechanizm routingu do odwzorowania żądań http na akcjekonkretnychkontrolerów.Głównymplikiemkonfiguracyjnymjest/app/Config/routes.php.Edytuj ten plik w celu dodania nowej reguły, któraprzekieruje żądania do korzenia aplikacji do metodyindex()kontroleraBooksController.Wykomentuj domyślną regułę (dotyczącą kontroleraPagesControllerdostarczanego domyślnie ze środowiskiem) i zamień ją naponiższą. Następnie otwórz w przeglądarce adresRouter::connect('/',array('controller' => 'books', 'action' => 'index')); [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • imikimi.opx.pl
  • comp
    StartZadanie z Zarządzania Transportem Miejskim i Regionalnym, PG, PG sem. II mgr, Zarządzanie transportem miejskim i regionalnym, GrulkowskiZadania wypracowań - Historia Sztuki(1), Historia sztukiZadania Algebra, AlgebraZadania-Gothic I, Gothic IZadania wantuch + rozw, Elektrotechnika AGH, Semestr III zimowy 2013-2014, semestr III, semestr III, Teoria obwodów 2Zadania-teoria-sprezystosci-1, Studia, IMIR- MIBM, V rok, Teoria sprezystosciZadania (zestawy I-VI), Download Gry & Pomoce Naukowe, WIP (mgr) pomoce naukowe, KIDMUZadania z mechaniki 1, Politechnika, MechanikaZadania chemia, studia, Chemiazapis konstrukcji zadania, POLITECHNIKA WROCŁAWSKA (2009), Semestr II, Grafika Inżynierska - Zapis Konstrukcji
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • wanilia39.opx.pl
  • Cytat

    Filozof sprawdza się w filozofii myśli, poeta w filozofii wzruszenia. Kostis Palamas
    Aby być szczęśliwym w miłości, trzeba być geniuszem. Honore de Balzac
    Fortuna kołem się toczy. Przysłowie polskie
    Forsan et haec olim meminisse iuvabit - być może kiedyś przyjemnie będzie wspominać i to wydarzenie. Wergiliusz
    Ex Deo - od Boga.

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com