[ Pobierz całość w formacie PDF ]
.com/ch15/mgmt_cat_del.phtml?cat_id=1.Do skryptu jest przekazanyidentyfikator kategorii, wiêc mo¿na na jego podstawie skonstruowaæ prostewyra¿enie SQL DELETE.W przypadku edycji, ten sam mechanizm umo¿liwia wczytanienazwy kategorii do pola tekstowego.Kod Ÿród³owy tych stron nie zosta³ tuzamieszczony, poniewa¿ jest on bardzo podobny do kodu z wydruków 9.i 10.Funkcje usuwaj¹ce i zmieniaj¹ce kategorie pokazane s¹ na wydruku plikumgmt_funcs.php (wydruk 15.12.).Podczas tworzenia kategorii nale¿y pamiêtaæ, ¿e nazwa nowej kategorii nie mo¿eznajdowaæ siê w bazie danych.W przypadku usuwania kategorii nale¿y sprawdziæ,czy nie istnieje produkt nale¿¹cy do tej kategorii.Je¿eli do kategorii nale¿¹jakieœ produkty usuniêcie kategorii spowodowa³oby powstanie osieroconychrekordów produktów i potencjalnie b³êdów aplikacji.Tworz¹c aplikacje WWWdzia³aj¹ce w oparciu o bazê danych, spe³nienie wszystkich zasad biznesowych wkodzie jest krytyczne do dobrego dzia³ania aplikacji.Niektóre z zasad mog¹ byærealizowane przez funkcje bazy danych, na przyk³ad wymuszanie wiêzówintegralnoœci lub kaskadowe operacje na danych.Inne zasady mog¹ byærealizowane w bazie danych za pomoc¹ wyzwalaczy lub procedur przechowywanych.Pozosta³e zasady biznesowe musz¹ byæ realizowane w kodzie aplikacji.Tworz¹c kod obs³ugi zasad biznesowych dobr¹ praktyk¹ jest tworzenie funkcjiobs³ugi wszystkich zasad.Dla przyk³adu nale¿y u¿yæ funkcji DeleteEntity()zamiast wplataæ w kod wyra¿enia DELETE.Funkcja DeleteEntity() mo¿e zawieraæ wsobie ca³¹ logikê wymagan¹ do kontroli wiêzów integralnoœci oraz zasadbiznesowych i zwracaæ ró¿ne wartoœci kodu powrotu w zale¿noœci od ró¿nychb³êdów, jakie mog¹ wyst¹piæ.W ten sposób poprawia siê mo¿liwoœæ póŸniejszegou¿ycia kodu oraz u³atwia wprowadzanie do aplikacji zmian w logice.Wracaj¹c do katalogu produktów, kolejnym krokiem jest utworzenie stron obs³ugiaktualnego zestawu produktów.Strony te s¹ logicznie identyczne ze stronamiobs³ugi kategorii.Na rysunku 15.4 pokazana jest strona zarz¹dzania produktami,natomiast na wydruku 15.11.znajduje siê skrypt generuj¹cy t¹ stronê.Rysunek 15.4.Ekran zarz¹dzania produktamiWydruk 15.11.Aplikacja zarz¹dzania danymi — zarz¹dzanie produktami(mgmt_prods.phtml)Strony umo¿liwiaj¹ce dodawanie, usuwanie i zmianê produktów nie zosta³y tutajszczegó³owo przedstawione, ale s¹ dostêpne na stronie WWW wymienionej wzasobach sieci na koñcu ksi¹¿ki.Zasady biznesowe obowi¹zuj¹ce przy dodawaniunowych produktów s¹ nastêpuj¹ce:Produkt musi zostaæ przypisany do jednej kategorii.Nazwy produktów w kategorii musz¹ byæ unikalne.Cena produktu musi wynosiæ co najmniej zero.Waga towaru równie¿ musi wynosiæ co najmniej zero.W chwili obecnej nie ma ograniczeñ na kasowanie produktów.Po zmianie danychproduktu musz¹ byæ spe³nione te same zasady biznesowe co przy dodawaniu nowegoproduktu.Na wydruku 15.12 zamieszczony zosta³ fragment pliku mgmt_funcs.phpzawieraj¹cy niektóre funkcje dostêpu do bazy danych oraz funkcje zasadbiznesowych u¿ywanych w aplikacji.Wydruk 15.12.Aplikacja zarz¹dzaj¹ca danymi — funkcje u¿ytkowe (mgmt_funcs.php)standard[1] => bcmath[2] => Calendar[3] => com[4] => variant[5] => ftp[6] => mysql[7] => odbc[8] => pcre[9] => session[10] => xml[11] => wddx[12] => apache)Patrz równie¿: get_extension_funcs().get_magic_quotes_gpcZwraca stan ustawienia magic_quotes_gpc (0 — wy³aczone, 1 — w³¹czone).Patrzrównie¿: get_magic_quotes_runtime(), set_magic_quotes_runtime().long get_magic_quotes_gpc( void )get_magic_quotes_runtimeZwraca stan ustawienia magic_quotes_runtime (0 — wy³aczone, 1 — w³¹czone).Patrz równie¿: get_magic_quotes_gpc(), set_magic_quotes_runtime().long get_magic_quotes_runtime( void )get_meta_tagsOtwiera plik $filename i analizuje go szukaj¹c znaczników meta.array get_meta_tags( string filename [, int use_include_path])Przyk³ad: ZnacznikiUwagaUwaga na koñce linii — PHP wykorzystuje w³asn¹ funkcjê analizuj¹c¹ plikwejœciowy, wiêc pliki z MacIntosha mog¹ nie dzia³aæ na Uniksie.Nazwa w³aœciwoœci staje siê kluczem, natomiast zawartoœæ umieszczana jest wtablicy jako wartoœæ elementu.Dziêki temu mo¿na wykorzystaæ standardowefunkcje przegl¹daj¹ce tablice.Znaki specjalne s¹ zastêpowane znakiempodkreœlenia, natomiast pozosta³y tekst jest konwertowany do ma³ych liter.Ustawienie use_include_path na 1 spowoduje, ¿e PHP bêdzie próbowa³ otworzyæplik znajduj¹cy siê na standardowej œcie¿ce do³¹czania.get_object_varsZwraca tablicê asocjacyjn¹ w³aœciwoœci zdefiniowanych w obiekcie okreœlonymprzez $obj.Je¿eli zmienna zdefiniowana w klasie nie ma przypisanej wartoœci,nie znajdzie siê ona w tablicy asocjacyjnej.array get_object_vars( object obj)Przyk³ad: u¿ycie get_object_vars()Patrz równie¿: get_class_methods(), get_class_vars().get_parent_classZwraca nazwê klasy bazowej dla klasy, której instancj¹ jest obiekt $obj.Patrzrównie¿: get_class(), is_subclass_of().string get_parent_class( object obj )get_required_filesZwraca tablicê asocjacyjn¹ z nazwami wszystkich plików za³adowanych do skryptupoprzez funkcjê require_once().array get_required_files( void )Przyk³ad: Wypisywanie plików do³¹czanych za pomoc¹ require i include
[ Pobierz całość w formacie PDF ]
Darmowy hosting zapewnia PRV.PL