Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00528 010290 11040496 na godz. na dobę w sumie
Yii Framework - książka
Yii Framework - książka
Autor: Liczba stron: 264
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-7920-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> inne
Porównaj ceny (książka, ebook, audiobook).

Wykorzystaj Yii, a w mgnieniu oka zbudujesz wydajną stronę WWW!

Yii (akronim od 'Yes, it is!') to fantastyczny framework oparty na PHP, przeznaczony do tworzenia profesjonalnych aplikacji sieciowych wielkiej skali. Świetnie nadaje się do budowy interaktywnych witryn, których twórcy przewidują dużą liczbę odwiedzin, ponieważ jest nie tylko lekki, ale także wyposażony w mechanizmy zapobiegające ładowaniu się i inicjalizacji dodatkowych bibliotek aż do momentu wywołania metody z ich zasobu. Pozwala także stworzyć stronę WWW z wyraźnie oddzielonymi od siebie sferami działania, według struktury model-widok-kontroler. Oferuje ogrom funkcji, po które można sięgnąć w bardzo prosty sposób, bez potrzeby zgłębiania kodu plików zawierających metody wykonujące te funkcje w systemie.

W tej książce znajdziesz wszystkie ważne informacje dotyczące frameworka Yii, od sposobu instalacji aż po sprawdzanie poprawności danych gotowej aplikacji, wprowadzanych poprzez formularz. Dowiesz się, jak w praktyce wykorzystać strukturę model-widok-kontroler, stworzyć formularz i skonfigurować zaawansowane opcje frameworka. Poznasz narzędzia do automatycznego generowania kodu (Gii) i interesującą, bardzo przydatną bibliotekę rozszerzeń (Zii). Nauczysz się budować blog z wykorzystaniem ActiveRecord oraz SQL, a także usuwać błędy z Twojej aplikacji. Z tą książką w pełni opanujesz Yii!

Yii - genialne narzędzie na miarę Twoich potrzeb!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Redaktor prowadzący: Ewelina Burska Projekt okładki: Studio Gravite/Olsztyn Obarek, Pokoński, Pazdrijowski, Zaprucki Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/yiifra Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Materiały do książki można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/yiifra.zip ISBN: 978-83-246-7920-1 Copyright © Helion 2014 Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis tre(cid:264)ci Wst(cid:246)p .............................................................................................. 7 Rozdzia(cid:228) 1. Pobieranie ....................................................................................... 9 Wymagania frameworku ................................................................................................ 10 Rozdzia(cid:228) 2. Instalacja ....................................................................................... 13 Dodawanie (cid:286)cie(cid:298)ki dost(cid:266)pu w systemie Windows .......................................................... 13 Dodawanie (cid:286)cie(cid:298)ki dost(cid:266)pu w systemie Linux ............................................................... 14 Uruchomienie frameworku ............................................................................................. 14 Plik .htaccess .................................................................................................................. 16 „Tyle pracy, aby wygenerowa(cid:252) jedn(cid:261) stron(cid:266)!” ............................................................... 17 Rozdzia(cid:228) 3. Model, widok, kontroler .................................................................. 19 Wzorzec model – widok – kontroler ............................................................................... 19 Kontroler ........................................................................................................................ 19 Parametry akcji ......................................................................................................... 21 Model ............................................................................................................................. 22 Baza danych ............................................................................................................. 23 DAO ......................................................................................................................... 24 Przekazywanie danych ............................................................................................. 26 Parametry w zapytaniu ............................................................................................. 29 Po(cid:225)(cid:261)czenie z wieloma bazami danych ...................................................................... 30 ActiveRecord ............................................................................................................ 32 Porównanie ActiveRecord, SQL i Query Builder ..................................................... 43 Widok ............................................................................................................................. 43 Rozdzia(cid:228) 4. Tworzenie formularzy ...................................................................... 47 Budowa formularza ........................................................................................................ 47 Model ....................................................................................................................... 48 Widok ....................................................................................................................... 49 Kontroler .................................................................................................................. 50 Elementy formularza ...................................................................................................... 52 Pole tekstowe — text ................................................................................................ 52 Pole z ukryt(cid:261) tre(cid:286)ci(cid:261) — password ............................................................................. 54 Wielowierszowe pole tekstowe — textarea .............................................................. 55 Pole listy rozwijanej — select .................................................................................. 56 Pole opcji (prze(cid:225)(cid:261)cznik) — radio .............................................................................. 58 Pole wyboru — checkbox ........................................................................................ 59 Kup książkęPoleć książkę 4 Yii Framework Selektor plików — file ............................................................................................. 61 Pole ukryte — hidden ............................................................................................... 63 Przycisk — button .................................................................................................... 64 Przycisk wys(cid:225)ania formularza — submit .................................................................. 65 Przycisk przywracania danych domy(cid:286)lnych formularza — reset ............................. 67 Walidacja danych ........................................................................................................... 68 Puste pola ................................................................................................................. 70 Porównywanie .......................................................................................................... 71 Poprawno(cid:286)(cid:252) adresu e-mail ........................................................................................ 73 Format daty i czasu .................................................................................................. 73 Domy(cid:286)lna warto(cid:286)(cid:252) pola ............................................................................................ 74 Warto(cid:286)ci istniej(cid:261)ce w tabeli ...................................................................................... 75 Konwertowanie otrzymanych danych ...................................................................... 76 Dozwolone ci(cid:261)gi znakowe ........................................................................................ 77 Dozwolona liczba wpisanych znaków ...................................................................... 78 Dozwolone warto(cid:286)ci liczb ........................................................................................ 79 Sprawdzanie typu zmiennej ...................................................................................... 80 Warto(cid:286)(cid:252) unikalna ...................................................................................................... 81 Walidacja adresu URL ............................................................................................. 81 Sprawdzanie warto(cid:286)ci pola w zale(cid:298)no(cid:286)ci od scenariusza .......................................... 82 Rozdzia(cid:228) 5. Zaawansowana konfiguracja ........................................................... 87 Zmiana adresu URL ....................................................................................................... 87 Zmiana tytu(cid:225)u ................................................................................................................. 87 (cid:224)adowanie bibliotek i komponentów .............................................................................. 88 B(cid:225)(cid:266)dy aplikacji ................................................................................................................ 90 Dzienniki systemowe ...................................................................................................... 90 Tworzenie (cid:225)(cid:261)czy .............................................................................................................. 94 Usuwanie nazwy pliku index.php z adresu URL ............................................................ 98 Zmiana (cid:286)cie(cid:298)ki dost(cid:266)pu Yii ............................................................................................ 99 W(cid:225)asne dane konfiguracyjne ......................................................................................... 100 Strony statyczne ........................................................................................................... 101 Przekierowania ............................................................................................................. 103 Dodawanie komunikatów w sesji ................................................................................. 103 Korzystanie z szablonów .............................................................................................. 105 Przygotowanie aplikacji do opublikowania .................................................................. 108 Rozdzia(cid:228) 6. Gii ............................................................................................... 109 Uruchomienie Gii ......................................................................................................... 109 Po(cid:225)(cid:261)czenie z baz(cid:261) danych ............................................................................................. 110 Tabela w bazie danych ................................................................................................. 110 Logowanie do Gii ......................................................................................................... 111 Tworzenie modeli ......................................................................................................... 112 Tworzenie kontrolerów ................................................................................................. 114 Tworzenie formularzy .................................................................................................. 116 Tworzenie systemu CRUD ........................................................................................... 118 Rozdzia(cid:228) 7. Zaawansowane mo(cid:276)liwo(cid:264)ci Yii ...................................................... 125 Automatyczne dzielenie na strony ................................................................................ 125 Sortowanie danych ....................................................................................................... 128 CAPTCHA w formularzach ......................................................................................... 130 Zapisywanie plików na serwerze poprzez formularz .................................................... 134 Kup książkęPoleć książkę Spis tre(cid:264)ci 5 Rozdzia(cid:228) 8. Zii ............................................................................................... 137 Rozszerzenia Zii ........................................................................................................... 137 CMenu .......................................................................................................................... 137 CListView .................................................................................................................... 138 CDetailView ................................................................................................................. 140 CBreadcrumbs .............................................................................................................. 141 CGridView ................................................................................................................... 143 Rozdzia(cid:228) 9. Budujemy blog — interfejs AR ...................................................... 145 Baza danych ................................................................................................................. 145 Tworzenie aplikacji ...................................................................................................... 152 G(cid:225)ówny plik aplikacji ............................................................................................. 153 G(cid:225)ówny plik konfiguracyjny ................................................................................... 153 Plik .htaccess .......................................................................................................... 154 Arkusz styli ............................................................................................................ 155 G(cid:225)ówny plik szablonu strony .................................................................................. 155 Model dla tabeli blog_kategorie ............................................................................. 156 Model dla tabeli blog_komentarze ......................................................................... 158 Model dla tabeli blog_uzytkownicy ....................................................................... 159 Model dla tabeli blog_wpisy .................................................................................. 161 Model do obs(cid:225)ugi zmiany has(cid:225)a .............................................................................. 162 Kontroler bloga ...................................................................................................... 163 Kontroler logowania ............................................................................................... 167 Kontroler panelu administratora ............................................................................. 170 Widok logowania ................................................................................................... 179 Widok bloga — strona g(cid:225)ówna ............................................................................... 181 Widok bloga — kategoria ...................................................................................... 182 Widok bloga — wpis .............................................................................................. 184 Widok panelu — kategorie ..................................................................................... 186 Widok panelu — aktualizacja kategorii ................................................................. 189 Widok panelu — komentarze ................................................................................. 190 Widok panelu — wpisy .......................................................................................... 191 Widok panelu — aktualizacja wpisu ...................................................................... 193 Widok panelu — zmiana has(cid:225)a ............................................................................... 196 S(cid:225)owo ko(cid:276)cowe ...................................................................................................... 198 Rozdzia(cid:228) 10. Budujemy blog — zapytania SQL .................................................. 199 Baza danych ................................................................................................................. 199 Utworzenie aplikacji ..................................................................................................... 199 G(cid:225)ówny plik aplikacji ............................................................................................. 200 G(cid:225)ówny plik konfiguracyjny ................................................................................... 200 Plik .htaccess .......................................................................................................... 201 Arkusz styli ............................................................................................................ 201 G(cid:225)ówny plik szablonu strony .................................................................................. 202 Model dla tabeli blog_kategorie ............................................................................. 203 Model dla tabeli blog_komentarze ......................................................................... 205 Model dla tabeli blog_uzytkownicy ....................................................................... 208 Model dla tabeli blog_wpisy .................................................................................. 209 Model do obs(cid:225)ugi zmiany has(cid:225)a .............................................................................. 212 Kontroler bloga ...................................................................................................... 214 Kontroler logowania ............................................................................................... 218 Kontroler panelu administratora ............................................................................. 220 Widok bloga — strona g(cid:225)ówna ............................................................................... 229 Widok bloga — kategoria ...................................................................................... 231 Kup książkęPoleć książkę 6 Yii Framework Widok bloga — wpis .............................................................................................. 231 Widok logowania ................................................................................................... 234 Widok panelu — kategorie ..................................................................................... 236 Widok panelu — aktualizacja kategorii ................................................................. 238 Widok panelu — komentarze ................................................................................. 240 Widok panelu — wpisy .......................................................................................... 241 Widok panelu — aktualizacja wpisu ...................................................................... 245 Widok panelu — zmiana has(cid:225)a ............................................................................... 247 S(cid:225)owo ko(cid:276)cowe ...................................................................................................... 249 Rozdzia(cid:228) 11. Debugowanie aplikacji .................................................................. 251 Co pracuje szybciej: AR czy SQL? .............................................................................. 254 Opcje debugera ............................................................................................................. 255 Podsumowanie ............................................................................. 257 Skorowidz .................................................................................... 259 Kup książkęPoleć książkę Rozdzia(cid:228) 8. Zii Rozszerzenia Zii Biblioteka rozszerze(cid:276) Zii jest dostarczana wraz z systemem Yii. Te dodatkowe roz- szerzenia, napisane przez zespó(cid:225) twórców frameworku, pozwalaj(cid:261) generowa(cid:252) w pro- sty sposób dodatkowe elementy. Jest to spore u(cid:225)atwienie w tworzeniu stron WWW. CMenu Klasa CMenu umo(cid:298)liwia efektywne generowanie menu aplikacji. Mo(cid:298)na za jej pomoc(cid:261) tworzy(cid:252) menu zdefiniowane w postaci listy, jak równie(cid:298) w(cid:225)asne szablony prezentacji elementów nawigacyjnych. Aby sprawdzi(cid:252), jak to dzia(cid:225)a, utworzymy kontroler MenuController.php w katalogu protected/controllers. Zadeklarujemy akcj(cid:266) actionIndex(), której zadaniem jest wczyta- nie widoku (listing 8.1). Listing 8.1. Kontroler wczytuj(cid:261)cy plik widoku ?php class MenuController extends Controller { public function actionIndex() { $this- render( index ); } } ? Kup książkęPoleć książkę 138 Yii Framework Elementy Zii zastosujemy w widoku, co umo(cid:298)liwi oddzielenie w aplikacji warstwy prezentacji od warstwy tre(cid:286)ci. Zaraz opisz(cid:266), jak to konkretnie wygl(cid:261)da. Najpierw utworzymy plik widoku index.php w katalogu protected/views/menu. Za pomoc(cid:261) metody widget() (cid:225)adujemy rozszerzenie — klas(cid:266) CMenu. Pierwszym parametrem me- tody widget() jest (cid:286)cie(cid:298)ka dost(cid:266)pu do w(cid:225)(cid:261)czanej wtyczki (CMenu), natomiast w drugim parametrze definiujemy w(cid:225)a(cid:286)ciwo(cid:286)ci tworzonego menu w tablicy. Ka(cid:298)de menu zaczyna- my od klucza items, do którego przypisujemy tablice z dwoma wymaganymi elementami. Pierwszym elementem jest klucz label wraz z opisem (etykiet(cid:261)) (cid:225)(cid:261)cza, a drugim — klucz url z adresem URL do strony, któr(cid:261) ma uruchomi(cid:252) klikni(cid:266)cie danej pozycji menu. Musimy tutaj pami(cid:266)ta(cid:252) zarówno o kontrolerze, jak i o wywo(cid:225)ywanej metodzie, w przeciwnym razie dojdzie do b(cid:225)(cid:266)dów. Je(cid:286)li chcemy uzyska(cid:252) menu z podmenu, jako kolejny parametr dodajemy items, w którym definiujemy poszczególne elementy podme- nu, dok(cid:225)adnie tak samo jak napisali(cid:286)my menu g(cid:225)ówne (listing 8.2). Listing 8.2. Widok do generowania menu. Zwró(cid:252) uwag(cid:266) na za(cid:225)adowan(cid:261) wtyczk(cid:266) CMenu ?php $this- widget( zii.widgets.CMenu , array( items = array( array( label = Strona g(cid:273)ówna , url = array( stronaglowna/index )), array( label = Oferta , url = array( oferta/index ), items = array( array( label = Produkt 1 , url = array( produkty/produkt1 )), array( label = Produkt 2 , url = array( produkty/produkt1 )), array( label = Produkt 3 , url = array( produkty/produkt1 )), ) ), array( label = Zaloguj , url = array( zaloguj/index )), ) )); ? Je(cid:286)li chcesz obejrze(cid:252), jak wygl(cid:261)da nowo utworzona strona, w przegl(cid:261)darce interneto- wej wpisz adres http://localhost/yii/test/menu. CListView Klasa CListView umo(cid:298)liwia proste prezentowanie danych pobranych na przyk(cid:225)ad z bazy danych. Umo(cid:298)liwia wykorzystywanie szablonów widoków do wy(cid:286)wietlania danych, co pozwala na (cid:225)atwe dostosowywanie wygl(cid:261)du generowanej strony do potrzeb. Co istotne, CListView zapewnia obs(cid:225)ug(cid:266) zarówno sortowania, jak i podzia(cid:225)u zestawu wy- ników na strony. Najpierw napiszemy kontroler. Utworzymy plik ListaController.php, który zapiszemy w katalogu protected/controllers. Dane, które b(cid:266)dziemy prezentowa(cid:252) u(cid:298)ytkownikowi, ju(cid:298) powiniene(cid:286) mie(cid:252) zapisane w tabeli nazwiska. Je(cid:286)li tak nie jest, w rozdziale 6. znaj- dziesz informacje o strukturze tabeli i zawartych w niej danych. Je(cid:286)li natomiast tabela Kup książkęPoleć książkę Rozdzia(cid:228) 8. (cid:105) Zii 139 nazwiska istnieje, dzi(cid:266)ki odwo(cid:225)aniu do klasy CActiveDataProvider(), gdzie w pierw- szym parametrze podajemy nazw(cid:266) modelu przeznaczonego do obs(cid:225)ugi tabeli, uzy- skamy mo(cid:298)liwo(cid:286)(cid:252) wykorzystania z niej danych. Nast(cid:266)pnie (cid:225)adujemy widok i przeka- zujemy do niego odwo(cid:225)anie do bazy danych (listing 8.3). Listing 8.3. Kontroler wczytuj(cid:261)cy dane pochodz(cid:261)ce z modelu ?php class ListaController extends Controller { public function actionIndex() { $Dane = new CActiveDataProvider( Nazwiska ); $this- render( index , array ( Dane = $Dane, ) ); } } ? Nast(cid:266)pnie utworzymy widok. Znajdzie si(cid:266) on w pliku index.php w katalogu protec- ted/views/lista. Najpierw musimy za(cid:225)adowa(cid:252) wtyczk(cid:266) CListView. W pierwszym parame- trze podajemy (cid:286)cie(cid:298)k(cid:266) dost(cid:266)pu do wtyczki, a w drugim definiujemy wymagane parametry: element dataProvider wraz z uchwytem do danych, element itemView z szablonem pre- zentacji tre(cid:286)ci oraz sortableAttributes, do którego przypiszemy tablic(cid:266) zawieraj(cid:261)c(cid:261) nazwy kolumn, wed(cid:225)ug których odb(cid:266)dzie si(cid:266) sortowanie danych (listing 8.4). Listing 8.4. Widok z u(cid:298)yciem wtyczki CListView ?php $this- widget( zii.widgets.CListView , array( dataProvider = $Dane, itemView = _zobacz , sortableAttributes = array( id , nazwisko , ), )); ? Utwórzmy jeszcze widok do prezentacji jednej linii tre(cid:286)ci. Znajdzie si(cid:266) on w pliku _zobacz.php w folderze protected/view/lista. W widoku nale(cid:298)y zdefiniowa(cid:252) bloki (sek- cje), w których zostan(cid:261) wy(cid:286)wietlone dane. Dane te zostan(cid:261) tu przekazane dzi(cid:266)ki za- stosowaniu obiektu $data z odwo(cid:225)aniem do pola z tabeli (listing 8.5). Kup książkęPoleć książkę 140 Yii Framework Listing 8.5. Szablon przygotowany do wy(cid:286)wietlenia jednego rekordu z bazy danych ?php echo div class= view ; echo div .$data- id. /div ; echo div .$data- nazwisko. /div ; echo /div ; ? Strona ju(cid:298) jest gotowa. Mo(cid:298)esz j(cid:261) uruchomi(cid:252), wpisuj(cid:261)c w pasku adresu: http://localhost/ yii/test/lista. CDetailView Klasa CDetailView umo(cid:298)liwia ustawienie sposobu wy(cid:286)wietlania okre(cid:286)lonych szcze- gó(cid:225)ów pojedynczego rekordu pobranego z bazy danych. Prac(cid:266) rozpoczniemy od zdefiniowania kontrolera. Utwórzmy wi(cid:266)c plik Szczegoly- Controller.php w katalogu protected/controllers. Wybierzmy jeden rekord z modelu Nazwiska; w tym celu mo(cid:298)esz si(cid:266) pos(cid:225)u(cid:298)y(cid:252) jego kluczem g(cid:225)ównym. Nast(cid:266)pnie prze- ka(cid:298)my dane do widoku (listing 8.6). Listing 8.6. Kontroler przekazuj(cid:261)cy dane do pliku widoku ?php class SzczegolyController extends Controller { public function actionIndex() { $Model = Nazwiska::model()- findByPk(1); $this- render( index , array ( Model = $Model, ) ); } } ? Kup książkęPoleć książkę Rozdzia(cid:228) 8. (cid:105) Zii 141 Teraz trzeba jeszcze tylko utworzy(cid:252) plik widoku, dzi(cid:266)ki któremu b(cid:266)dzie mo(cid:298)na wy- (cid:286)wietli(cid:252) dane. Utworzymy plik index.php w katalogu protected/views/szczegoly. W pliku wczytamy wtyczk(cid:266) CDetailView oraz zadeklarujemy jej w(cid:225)a(cid:286)ciwo(cid:286)ci. Pierwszym pa- rametrem jest data; b(cid:266)dzie on przechowywa(cid:225) dane otrzymane z bazy danych. Kolej- nym jest tablica attributes() zawieraj(cid:261)ca pola do wy(cid:286)wietlenia (listing 8.7). Listing 8.7. Widok wy(cid:286)wietlaj(cid:261)cy szczegó(cid:225)owe dane na temat rekordu. ?php $this- widget( zii.widgets.CDetailView , array( data = $Model, attributes = array( id , ileosob , nazwisko , ), )); ? Klasa CDetailView umo(cid:298)liwia równie(cid:298) wykorzystanie mechanizmu relacji w bazie danych: w wygenerowanym kodzie mog(cid:261) si(cid:266) znale(cid:296)(cid:252) warto(cid:286)ci pobrane z innych tabel, zgodnie ze zdefiniowanymi relacjami. Wi(cid:266)cej informacji na ten temat znajdziesz na stronie internetowej aplikacji w sekcji Class Reference1. Je(cid:286)li chcesz sprawdzi(cid:252), jak dzia(cid:225)a nowo utworzona strona, wpisz w pasku adresu przegl(cid:261)- darki internetowej: http://localhost/yii/test/szczegoly. CBreadcrumbs Klasa CBreadcrumbs umo(cid:298)liwia wy(cid:286)wietlenie grupy (cid:225)(cid:261)czy wskazuj(cid:261)cych pozycj(cid:266) bie- (cid:298)(cid:261)cej strony w ca(cid:225)ej aplikacji. Jest to przydatny element, zw(cid:225)aszcza kiedy tworzy si(cid:266) bardzo rozbudowan(cid:261) witryn(cid:266). Aby wypróbowa(cid:252) dzia(cid:225)anie tej wtyczki, utworzymy kontroler, który pos(cid:225)u(cid:298)y do za(cid:225)a- dowania pliku widoku. Zapiszemy wi(cid:266)c plik SciezkaController.php w katalogu pro- tected/controllers. W kontrolerze nale(cid:298)y wczyta(cid:252) metod(cid:266) do renderowania widoku wraz z plikiem (listing 8.8). Listing 8.8. Kontroler s(cid:225)u(cid:298)(cid:261)cy do za(cid:225)adowania widoku ?php class SciezkaController extends Controller { public function actionIndex() { 1 http://www.yiiframework.com/doc/api/ — przyp. red. Kup książkęPoleć książkę 142 Yii Framework $this- render( index ); } } ? Teraz nale(cid:298)y utworzy(cid:252) widok w pliku index.php w katalogu protected/views/sciezka. W widoku za(cid:225)adujemy wtyczk(cid:266). W pierwszym parametrze okre(cid:286)limy nazw(cid:266) klasy CBreadcrumbs wraz ze (cid:286)cie(cid:298)k(cid:261) dost(cid:266)pu, natomiast w drugim zadeklarujemy tablic(cid:266) zawie- raj(cid:261)c(cid:261) klucz links, do którego przypiszemy tablic(cid:266) zawieraj(cid:261)c(cid:261) wy(cid:286)wietlane kolejno nazwy poszczególnych cz(cid:266)(cid:286)ci witryny. Ka(cid:298)da taka nazwa stanowi klucz tablicy, w której nale(cid:298)y zdefiniowa(cid:252) (cid:286)cie(cid:298)ki dost(cid:266)pu wraz z potrzebnymi parametrami. Pierwszy z tych parametrów to nazwa kontrolera i metody, a kolejnymi s(cid:261) zmienne wraz z warto- (cid:286)ciami (listing 8.9). Listing 8.9. Widok z definicj(cid:261) (cid:225)(cid:261)czy wskazuj(cid:261)cych pozycj(cid:266) bie(cid:298)(cid:261)cej strony w witrynie ?php $this- widget( zii.widgets.CBreadcrumbs , array( links = array( Kategoria = array( sciezka/kategoria , id = 12), Podkategoria = array( sciezka/podkategoria , id = 25), Zawarto(cid:295)(cid:232) wpisu , ), )); ? Gotowa strona znajduje si(cid:266) pod adresem http://localhost/yii/test/sciezka. Wywo(cid:225)anie strony z przegl(cid:261)darki spowoduje wygenerowanie (cid:225)(cid:261)czy wskazuj(cid:261)cych pozycj(cid:266) prze- gl(cid:261)danej strony w aplikacji (rysunek 8.1). Rysunek 8.1. Dzi(cid:266)ki wy(cid:286)wietlonej (cid:286)cie(cid:298)ce u(cid:298)ytkownik (cid:225)atwo si(cid:266) zorientuje, z której cz(cid:266)(cid:286)ci aplikacji w(cid:225)a(cid:286)nie korzysta Kup książkęPoleć książkę Rozdzia(cid:228) 8. (cid:105) Zii CGridView 143 Klasa CGridView umo(cid:298)liwia wy(cid:286)wietlanie zestawu danych pobranych z bazy danych i sformatowanych w formie tabeli. Ka(cid:298)dy wiersz takiej wy(cid:286)wietlonej tabeli odpowia- da pojedynczej pozycji danych, a ka(cid:298)da kolumna — pojedynczemu atrybutowi da- nych. CGridView zapewnia zarówno sortowanie danych, jak i podzia(cid:225) wi(cid:266)kszego zestawu re- kordów na kilka stron. Funkcjonalno(cid:286)ci te mog(cid:261) dzia(cid:225)a(cid:252) i z wykorzystaniem Ajaksa, i w trybie zwyk(cid:225)ych (cid:298)(cid:261)da(cid:276) strony. Co ciekawe, je(cid:286)li u(cid:298)ytkownik wy(cid:225)(cid:261)czy w przegl(cid:261)- darce obs(cid:225)ug(cid:266) JavaScript, sortowanie i podzia(cid:225) danych na strony b(cid:266)dzie si(cid:266) automa- tycznie odbywa(cid:225)o w trybie zwyk(cid:225)ych (cid:298)(cid:261)da(cid:276) strony. Wtyczk(cid:266) CGridView nale(cid:298)y stosowa(cid:252) wraz z dostawc(cid:261) danych. Sprawd(cid:296)my, jak to dzia(cid:225)a. Tworzymy kontroler i zapisujemy go w pliku SiatkaCon- troller.php w katalogu protected/controllers. Musimy doda(cid:252) dowi(cid:261)zanie do modelu wybieraj(cid:261)cego dane z tabeli w naszej bazie danych. Nast(cid:266)pnie (cid:225)adujemy widok, do którego przekazujemy to dowi(cid:261)zanie (listing 8.10). Listing 8.10. Kontroler przekazuj(cid:261)cy dane do widoku ?php class SiatkaController extends Controller { public function actionIndex() { $Dane = new CActiveDataProvider( Nazwiska ); $this- render( index , array ( Dane = $Dane, ) ); } } ? Pozosta(cid:225) nam jeszcze do napisania widok, dzi(cid:266)ki któremu b(cid:266)dziemy mogli wy(cid:286)wietli(cid:252) informacje pobrane z bazy. Tworzymy plik widoku index.php w katalogu protected/ views/siatka. W widoku (cid:225)adujemy wtyczk(cid:266) za pomoc(cid:261) metody widget(). W pierwszym parametrze tej metody podajemy nazw(cid:266) klasy CGridView i okre(cid:286)lamy (cid:286)cie(cid:298)k(cid:266) dost(cid:266)pu. Drugim parametrem jest tablica, w której ustawiamy dostawc(cid:266) danych dataProvider. W ten sposób uzyskujemy dost(cid:266)p do danych, którymi zostanie wype(cid:225)niona tabela wy- generowana przez system (listing 8.11). Kup książkęPoleć książkę 144 Yii Framework Listing 8.11. Widok, w którym zastosowano wtyczk(cid:266) CGridView ?php $this- widget( zii.widgets.grid.CGridView , array( dataProvider = $Dane, )); ? Gotowe! Wywo(cid:225)ajmy teraz w przegl(cid:261)darce internetowej stron(cid:266) http://localhost/yii/ test/siatka. Aplikacja powinna pobra(cid:252) z bazy dane i wy(cid:286)wietli(cid:252) je w uk(cid:225)adzie tabeli. Aby posortowa(cid:252) dane, wystarczy klikn(cid:261)(cid:252) nag(cid:225)ówek odpowiedniej kolumny. Powinie- ne(cid:286) te(cid:298) zauwa(cid:298)y(cid:252), (cid:298)e dane zosta(cid:225)y rozdzielone na kilka kolejnych stron (rysunek 8.2). Rysunek 8.2. Tak wygl(cid:261)da tabela wygenerowana przez aplikacj(cid:266). Wy(cid:286)wietlone dane pochodz(cid:261) z bazy danych Kup książkęPoleć książkę Skorowidz A C action, 20 actionAdmin(), 122 actionCreate(), 121 actionDelete(), 122 actionIndex(), 24, 29, 50, 122, 132 actionUpdate(), 121 actionView(), 120 ActiveRecord, 32, 42, 43, 145, 254 addslashes(), 29 AdminController, 170 akcja parametry, 21 Apache, 10 aplikacja debugowanie, 251 applyOrder(), 128 arkusz styli, 155, 201 attributeLabels(), 48 attributeName, 75 attributes, 51 B basePath, 87 baza danych, 23 tworzenie, 23 biblioteki (cid:225)adowanie, 88 bindParam(), 29 b(cid:225)(cid:266)dy aplikacji, 90 button, 64 CActiveForm, 47 CActiveRecord, 32, 48 CAPTCHA, 130, 131, 133 CBreadcrumbs, 141 CController, 20 CDbConnection, 30 CDetailView, 140 CFileLogRoute, 93 CGridView, 143 charset, 23 checkBox(), 59 CHtml, 64 ci(cid:261)gi znakowe, 77 dozwolone, 77 class, 30, 90 className, 75 CListView, 138 CMenu, 137 CodeIgniter, 17, 82, 257 compare, 71 compareValue, 71 components, 22 confirm, 97 connectionString, 23 Controller, 19 count(), 36, 41 countBySql(), 42 createCommand(), 24 CRUD, 118, 119, 124 CSort(), 128 czas, 73 wzorce, 74 Kup książkęPoleć książkę 260 Yii Framework D dane konfiguracyjne, 100 DAO, 24 data, 73 wzorce, 74 date, 73 db, 23 dbname, 23 debuger, debugowanie, 251 opcje, 255 deklaracji action, 20 DELETE, 25 delete(), 39 deleteAll(), 40 dodawanie (cid:286)cie(cid:298)ki dost(cid:266)pu Linux, 14 Windows, 13 dropDownList(), 56 dzielenie na strony, 125 dzienniki systemowe, 90 emails, 92 enctype, 62 endWidget(), 49 error(), 70 errorSummary(), 49, 70 execute(), 25, 26 exploity, 17 E F fileField(), 61 filter, 76 filters(), 119 find(), 33, 39 findAll(), 36 findByAttributes(), 33, 35 findByPk(), 33, 37 findByPK(), 34 findBySql(), 33, 36 format, 73 format daty i czasu, 73 formularz, 47 budowa, 47 elementy, 52 tworzenie, 116 funkcja addslashes(), 29 count(), 36 getFlash(), 104 Gii, 52, 109 logowanie, 111 uruchomienie, 109 hashFlash(), 104 hiddenField(), 63 host, 23 htmlButton(), 64 htmlOptions, 62 Index, 20 INSERT, 25 G H I K katalog protected/models, 32, 48 protected/views, 45, 49 katalogu protected\ config, 16 katalogu protected/config, 21, 22, 30, 47, 87, 109 katalogu protected/controllers, 26, 50 katalogu protected/log, 93 katalogu protected\controllers, 20 katalogu protected\views\layouts, 45 katalogu upload, 136 katalogu yii, 14 klasa CActiveRecord, 48 klucz attributeName, 75 basePath, 87 class, 30, 90 className, 75 compareValue, 71 components, 22 connectionString, 23 db, 23 emails, 92 filter, 76 format, 73 gii, 109 language, 47 levels, 90 options, 57 params, 100 password, 23 Kup książkęPoleć książkę Skorowidz 261 preload, 90 routes, 90 type, 80 username, 23 value, 74 komponenty (cid:225)adowanie, 88 komunikaty dodawanie, 103 poziomy, 92 error, 93 info, 93 profile, 93 trace, 93 warning, 93 w sesji, 103 kontroler, 19, 50 tworzenie, 114 konwertowanie otrzymanych danych, 76 L labelEx(), 49 levels, 90 liczba wpisanych znaków, 78 dozwolona, 78 loadModel(), 123 logPath, 93 (cid:225)adowanie komponentów, 88 (cid:225)adowanie bibliotek, 88 (cid:225)(cid:261)cza tworzenie, 94 (cid:227) M metoda actionAdmin(), 122 actionCreate(), 121 actionDelete(), 122 actionIndex(), 20, 24, 29, 50, 122, 132 actionUpdate(), 121 actionView(), 120 attributeLabels(), 48 beginWidget(), 49 bindParam(), 29 checkBox(), 59 count(), 41 createCommand(), 24 delete(), 39 deleteAll(), 40 dropDownList(), 56 endWidget(), 49 error(), 70 errorSummary(), 49, 70 execute(), 25, 26 fileField(), 61 filters(), 119 find(), 33, 39 findAll(), 36 findByAttributes(), 33, 35 findByPk(), 33, 34, 37 findBySql(), 33, 36 getFlash(), 104 hashFlash(), 104 hiddenField(), 63 htmlButton(), 64 labelEx(), 49 loadModel(), 123 model(), 34 passwordField(), 54 performAjaxValidation(), 123 POST, 29 query(), 24-27 queryColumn(), 27 queryRow(), 27 queryScalar(), 27 radioButton(), 58 render(), 51 resetButton(), 67 rules(), 68 save(), 33, 37 setAttributes(), 132 submitButton(), 49, 65 textArea(), 55 textField(), 52 updateAll(), 39 updateByPk(), 38 validate(), 51 widget(), 127, 133, 138 mod_rewrite, 16 model, 19, 22, 48 tworzenie, 112 model(), 34 multipart, 62 MVC, 19 MySQL, 10 O operator porównania, 72 !=, 72 , 72 =, 72 Kup książkęPoleć książkę 262 Yii Framework operator porównania =, 72 ==, 72 , 72 =, 72 options, 57 P params, 100 password, 23 passwordField(), 54 Path, 13 performAjaxValidation(), 123 PHP, 10 phpMyAdmin, 23 plik .htaccess, 16, 94, 154, 201 aplikacji, 153, 200 index.php, 16, 98 konfiguracyjny, 153, 200 main.php, 16, 17, 21, 22, 30, 47, 87, 100, 109 php.ini, 10 szablonu strony, 155, 202 pole checkbox, 59 file, 61 hidden, 63 listy rozwijanej, 56 opcji (prze(cid:225)(cid:261)cznik), 58 password, 54 puste, 70 radio, 58 select, 56 selektor plików, 61 tekstowe, 52 text, 52 textarea, 55 ukryte, 63 warto(cid:286)(cid:252) domy(cid:286)lna, 74 wyboru, 59 z ukryt(cid:261) tre(cid:286)ci(cid:261), 54 poprawno(cid:286)(cid:252) adresu e-mail, 73 porównywanie, 71 POST, 29 poziomy komunikatów, 93 preload, 90 przekierowania, 103 przycisk, 64 button, 64 reset, 67 submit, 65 przycisk przywracania danych domy(cid:286)lnych formularza, 67 przycisk wys(cid:225)ania formularza, 65 puste pola, 70 Query Builder, 43 query(), 24, 25, 26 queryAll(), 27 queryColumn(), 27 queryRow(), 27 queryScalar(), 27 radioButton(), 58 range, 77 render(), 51 required, 70 reset, 67 resetButton(), 67 routes, 90 rules(), 68 save(), 33, 37 SELECT, 25 selected, 57 setAttributes(), 132 setFlash(), 104 sortowanie danych, 128 SQL, 43, 199, 254 strony statyczne, 101 strtoupper(), 76 submit, 65 submitButton(), 49, 65 aystem Yii, 9 szablony, 105 korzystanie, 105 (cid:286)cie(cid:298)ka dost(cid:266)pu, 99 zmiana, 99 Q R S (cid:263) T textArea(), 55 textField(), 49, 52 typ zmiennej, 81 sprawdzanie, 80 type, 80 tytu(cid:225), 87 zmiana, 87 Kup książkęPoleć książkę Skorowidz 263 U V unique, 81 UPDATE, 25 updateAll(), 39 updateByPk(), 38 URL, 81 walidacja, 81 urlManager, 16, 21 username, 23 utf8, 23 validate(), 51 value, 74 VARCHAR, 24 W walidacja adresu URL, 81 walidacja danych, 68 warto(cid:286)ci liczb, 79 warto(cid:286)(cid:252) widget(), 127, 133, 138 widok, 19, 43, 49 wielowierszowe pole tekstowe, 55 wzorce sprawdzania formatu daty i czasu, 74 date, 81 datetime, 81 float, 81 integer, 81 pola string, 81 time, 81 unikalna, 81 sprawdzanie, 82 wzorzec ?, 74 a, 74 d, 74 dd, 74 h, 74 hh, 74 m, 74 mm, 74 MM, 74 MMMM, 74 model – widok – kontroler, 19 s, 74 ss, 74 yy, 74 yyyy, 74 XAMPP, 10, 23 Yii, 9, 10, 17, 19, 257 instalacja, 13 mo(cid:298)liwo(cid:286)ci, 125 wymagania, 11 X Y Z zapisywanie plików na serwerze, 134 zapytanie DELETE, 25 INSERT, 25 UPDATE, 25 SELECT, 25 Zii, 137 CBreadcrumbs, 141 CDetailView, 140 CGridView, 143 CListView, 138 CMenu, 137 rozszerzenia, 137 zmiana tytu(cid:225)u, 87 Kup książkęPoleć książkę 264 Yii Framework Kup książkęPoleć książkę
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Yii Framework
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: