Grupa MagazynyInternetowe
Online: 892Witryna 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:
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:
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:
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ś
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):
symfony propel-generate-crud <APLIKACJA> <MODUŁ> <KLASA>
Wygenerowany moduł zostaje zapisany w folderze:
sf_sandbox/apps/<APLIKACJA>/modules/<MODUŁ>
na przykład:
sf_sandbox/apps/frontend/modules/aparat
Dostosowywanie aplikacji frontend rozpoczynamy od wykonania menu głównego. Skórka aplikacji frontend jest zawarta w pliku:
sf_sandbox/apps/frontend/templates/layout.php
Zmieniamy jego zawartość, dodając następujące menu główne:
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 link_to('tekst', 'lorem/ipsum'); ?>
Jeśli jako adres podajemy tylko nazwę modułu:
<?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ą:
<MODUŁ>/<AKCJA>?id=X
na przykład:
1. <?php echo link_to('tekst', 'aparat/show?id=5'); ?> 2. <?php echo link_to('tekst', 'matryca/delete?id=8'); ?>
Komentarzy: 1
Bardzo fajny opis:) Czytam angielską wersję podręcznika do Symfony ale ten artykuł wiele mi wyjaśnił.
Pozdrawiam
Artykuły tego autora:
Frameworki upraszczające pisanie kodu powstały dla wielu języków programowania. Najsłynniejsze z nich to chociażby Ruby on Rails, Zend Framework czy Django. Okazuje się, że własne frameworki stworzyli również koderzy HTML i CSS. Upraszczają pracę i pozwalają wyeliminować wiele żmudnych czynności, od których zwykle rozpoczynamy tworzenie nowego projektu.
Polecamy:
Na skróty:
Magazyny Internetowe| Co za ile| Programy| Praca| Magazyn Internet| Internet Maker| Web Toster| ForumNasze serwisy: