Newsletter

Grupa MagazynyInternetowe

Online: 892

Wyszukiwarka

PHP, Framework

Ćwiczenia w programowaniu aplikacji internetowych w Symfony

Krok czwarty: aplikacja frontend

Witryna poświęcona aparatom fotograficznym będzie składała się z dwóch niezależnych członów. Jeden z nich - frontend - będzie umożliwiał przeglądanie zawartości katalogu bez możliwości wprowadzania zmian. Drugi - backend - będzie panelem administracyjnym, służącym do edycji zawartości bazy danych. Człony te w terminologii Symfony są nazywane aplikacjami i znajdują się w folderze sf_sandbox/apps/.

Sandbox zawiera jedną (pustą) aplikację o nazwie frontend. (Jeśli zajrzymy do folderu sf_sandbox/apps/, to znajdziemy tam folder frontend/.) Dlatego aplikacji tej nie musimy tworzyć. Przystępujemy do wygenerowania modułów dostępu do trzech tabel bazy danych. W tym celu w wierszu poleceń (w folderze sf_sandbox/) wydajemy komendy:

[+]
 
 
Pobierz
1. symfony propel-generate-crud frontend aparat Aparat
2. symfony propel-generate-crud frontend matryca Matryca
3. symfony propel-generate-crud frontend producent Producent

Po wykonaniu powyższych poleceń odwiedzamy strony:

[+]
 
 
Pobierz
1. http://localhost/sf_sandbox/web/aparat
2. http://localhost/sf_sandbox/web/matryca
3. http://localhost/sf_sandbox/web/producent

(Powyższe adresy trzeba ręcznie wpisać w polu Adres przeglądarki). Będą one prezentowały zawartość bazy danych. Moduły wygenerowane poleceniem propel-generate-crud należy teraz dostosować do własnych potrzeb, modyfikując kod PHP oraz szablony.

Wygenerowane moduły CRUD pozwalają na tworzenie, edycję, uaktualnianie oraz usuwanie rekordów. Poszczególne operacje mają następujące adresy URL:

[+]
 
 
Pobierz
1. <MODUŁ>/show/id/X
2. <MODUŁ>/update/id/X
3. <MODUŁ>/delete/id/X
4. <MODUŁ>/create/id/X

W adresach tych X jest identyfikatorem rekordu, zaś nazwą modułu, np.:

[+]
 
 
Pobierz
1. http://localhost/sf_sandbox/web/aparat/show/id/5
2. http://localhost/sf_sandbox/web/producent/delete/id/1

Polecenie propel-generate-crud tworzy moduł CRUD (Create, Retrieve, Update, Delete) dla podanej tabeli. Pierwszym parametrem jest nazwa aplikacji, drugim - nazwa modułu, a trzecim - nazwa klasy dostępu (wygenerowanej przez Propel):

 
 
 
Pobierz
symfony propel-generate-crud <APLIKACJA> <MODUŁ> <KLASA>

Wygenerowany moduł zostaje zapisany w folderze:

 
 
 
Pobierz
sf_sandbox/apps/<APLIKACJA>/modules/<MODUŁ>

na przykład:

 
 
 
Pobierz
sf_sandbox/apps/frontend/modules/aparat

Globalne menu

Dostosowywanie aplikacji frontend rozpoczynamy od wykonania menu głównego. Skórka aplikacji frontend jest zawarta w pliku:

 
 
 
Pobierz
sf_sandbox/apps/frontend/templates/layout.php

Zmieniamy jego zawartość, dodając następujące menu główne:

[+]
plik sf_sandbox/apps/frontend/templates/layout.php
HTML
Pobierz
 1. <body>
 2. <div id="pojemnik">
 3.  
 4.   <ul id="menu">
 5.     <li><?php echo link_to('Aparaty', 'aparat'); ?></li>
 6.     <li><?php echo link_to('Producenci', 'producent'); ?></li>
 7.     <li><?php echo link_to('Matryce', 'matryca'); ?></li>
 8.   </ul>
 9.   
10.   <div id="kontent">
11.     <?php echo $sf_data->getRaw('sf_content') ?>
12.   </div>
13.  
14. </div>
15. </body>

Hiperłącza w szablonach Symfony umieszczamy wykorzystując funkcję link_to(). Jej pierwszym parametrem jest etykieta hiperłącza, zaś drugim - adres URL. Jeśli w aplikacji wygenerowano moduł o nazwie lorem i akcję o nazwie ipsum, to hiperłącze przyjmie adres:

 
 
PHP
Pobierz
<?php link_to('tekst', 'lorem/ipsum'); ?>

Jeśli jako adres podajemy tylko nazwę modułu:

 
 
PHP
Pobierz
<?php link_to('Aparaty', 'aparat'); ?>

to hiperłącze będzie prowadziło do akcji domyślnej modułu.

W przypadku akcji create, edit, update, delete modułów CRUD poprawnymi adresami są:

 
 
 
Pobierz
<MODUŁ>/<AKCJA>?id=X

na przykład:

[+]
 
PHP
Pobierz
1. <?php echo link_to('tekst', 'aparat/show?id=5'); ?>
2. <?php echo link_to('tekst', 'matryca/delete?id=8'); ?>
15 października 2008
Skomentuj
ten artykuł

Komentarzy: 1

Kod obrazkowy
(Kliknij, aby zmienić)
 
Przejdż do tego postu na forum Tuesday, 11.11.2008 15:48changer2004

Bardzo fajny opis:) Czytam angielską wersję podręcznika do Symfony ale ten artykuł wiele mi wyjaśnił.

Pozdrawiam

Zobacz wszystkie komentarze »

Autor

Włodzimierz Gajda

Artykuły tego autora:

Załączniki

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.