Oracle Database Tworzenie aplikacji internetowych w AJAX i PHP(1)
Oracle Database. Tworzenie aplikacji internetowych w AJAX i PHP Autorzy: Lee Barney, Michael McLaughlin TÅ‚umaczenie: Andrzej StefaÅ„ski ISBN: 978-83-246-1977-1 TytuÅ‚ oryginaÅ‚u: Oracle Database Ajax & PHP Web Application Development Format: 168×237, stron: 408 Wykorzystaj możliwoSci najlepszych technologii! " Jak wykorzystać obiekt XMLHttpRequest? " Jak manipulować modelem DOM? " Jakie możliwoSci kryje w sobie jÄ™zyk PL/SQL? Duet PHP i MySQL cieszy siÄ™ niesÅ‚abnÄ…cÄ… popularnoSciÄ…. Jednak na rynku rozwiÄ…zaÅ„ bazodanowych istnieje także wiele innych produktów. WSród nich znajdziesz również bazÄ™ danych firmy Oracle. Przez znacznÄ… czÄ™Sć profesjonalistów uważana jest ona za najlepszÄ…, najbezpieczniejszÄ… i najwydajniejszÄ… platformÄ™ do tworzenia zaawansowanych rozwiÄ…zaÅ„. DziÄ™ki tej książce dowiesz siÄ™, jak wykorzystać bazÄ™ Oracle w poÅ‚Ä…czeniu z PHP oraz dynamicznymi możliwoSciami technologii AJAX. W pierwszej kolejnoSci zapoznasz siÄ™ z możliwoSciami skalowania rozwiÄ…zaÅ„ korzystajÄ…cych z JavaScriptu i PHP. NastÄ™pnie nauczysz siÄ™ wykorzystywać obiekt XMLHttpRequest, a stÄ…d już tylko krok do opanowania technologii AJAX. Ponadto dowiesz siÄ™, jak manipulować elementami w modelu DOM oraz pracować zdalnie z obiektami PHP. Autorzy książki w wyczerpujÄ…cy, a równoczeSnie przejrzysty i przyjazny sposób wprowadzÄ… CiÄ™ w tajniki administrowania bazami Oracle oraz posÅ‚ugiwania siÄ™ skÅ‚adniÄ… jÄ™zyków SQL i PL/SQL, wykorzystywanych w tej bazie. Książka ta w umiejÄ™tny sposób Å‚Ä…czy wiedzÄ™ na temat projektowania przyjaznego i dynamicznego interfejsu użytkownika oraz zastosowania najlepszych rozwiÄ…zaÅ„ w dziedzinie baz danych. " SkalowalnoSć JavaScriptu i PHP " ObiektowoSć w tych jÄ™zykach " MożliwoSci i sposoby wykorzystania obiektu XMLHttpRequest " Manipulowanie modelem DOM za pomocÄ… JavaScriptu " Zdalne wywoÅ‚ania w PHP i HTTP-RPC " ObsÅ‚uga przycisku Cofnij w AJAX-ie " Zalecenia przy tworzeniu skalowalnych i elastycznych aplikacji " UdostÄ™pnianie VOIP oraz IM " Wykaz znaczników HTML " Podstawy jÄ™zyka PHP " Administrowanie bazami danych Oracle " SkÅ‚adnia i wykorzystanie jÄ™zyka SQL oraz PL/SQL Projektuj skalowalne i elastyczne aplikacje! Spis tre ci 5 Spis tre ci O autorach .................................................................................................9 O redaktorze technicznym ........................................................................11 Wprowadzenie ..........................................................................................13 Cz I Tworzenie podstaw ............................................................... 17 Rozdzia 1. Skalowalno JavaScript i PHP .................................................................19 Skalowalno ...............................................................................................................................20 Redukcja obci enia procesora i pami ci ....................................................................................21 Skalowanie struktur kontrolnych .................................................................................................22 Skalowanie przetwarzania ci gów znaków ..................................................................................26 Skalowanie prostych operacji matematycznych ..........................................................................28 Wp yw obiektów i ich metod na skalowanie ...............................................................................33 Wp yw wielokrotnych da wydruku na skalowanie .................................................................35 Redukcja obci enia sieci ............................................................................................................36 Wykorzystanie AJAX do zmniejszenia obci enia sieci .......................................................36 Wykorzystanie kompresji do zmniejszenia obci enia .........................................................38 Podsumowanie .............................................................................................................................40 Rozdzia 2. Modularno PHP i JavaScript ..................................................................41 Modularno ................................................................................................................................41 Projektowanie w rzeczywistym wiecie ......................................................................................42 G ówny modu i kontrolery .........................................................................................................49 Kontroler aplikacji i odwzorowania ............................................................................................50 Modularno JavaScript z kontrolerami i odwzorowaniami ........................................................52 Podsumowanie .............................................................................................................................54 Rozdzia 3. Obiekty JavaScript i PHP ..........................................................................55 Definiowanie i tworzenie klas .....................................................................................................55 Dziedziczenie ..............................................................................................................................59 Konstruktory ................................................................................................................................61 Publiczne, chronione i prywatne ..................................................................................................63 Atrybuty i metody w JavaScript ..................................................................................................66 Obiekty modelu, kontrolera i obiekty kontrolne w PHP ..............................................................69 Obiekty modelu, kontrolera i obiekty kontrolne w JavaScript .....................................................74 Podsumowanie .............................................................................................................................76 6 Oracle Database. Tworzenie aplikacji internetowych w AJAX i PHP Cz II Dynamiczna prezentacja: komunikacja mi dzy interfejsem u ytkownika i serwerem .......................... 77 Rozdzia 4. Obiekt XMLHttpRequest ...........................................................................79 Tworzenie dania i obs uga jego rezultatów ..............................................................................79 Tworzenie modu u Server Access Object ....................................................................................83 Podsumowanie .............................................................................................................................90 Rozdzia 5. AJAX, zaawansowany HTML i komunikacja HTTP .......................................93 Tworzenie rozwijanych tabel HTML ...........................................................................................93 Nag ówki HTTP, b dy i komunikacja z serwerem ...................................................................102 Podsumowanie ...........................................................................................................................108 Rozdzia 6. Modyfikowanie DOM za pomoc JavaScript .............................................109 Obiektowy model dokumentu (DOM) .......................................................................................110 Przeci gnij i upu .....................................................................................................................112 Biblioteka ............................................................................................................................112 Obiekty kontrolne w PHP ....................................................................................................122 Obiekty kontrolne JavaScript ..............................................................................................125 Zapisywanie informacji z mechanizmu przeci gnij i upu w bazie danych .............................130 Podsumowanie ...........................................................................................................................133 Cz III Zaawansowane zagadnienia dynamicznej prezentacji i komunikacji ..................................................................... 135 Rozdzia 7. Dost p do danych z innych aplikacji ........................................................137 Zdalne wywo ania w PHP i HTTP-RPC ....................................................................................138 Zdalne wywo ania za pomoc klientów i us ug XML-RPC z PEAR .........................................142 Podsumowanie ...........................................................................................................................152 Rozdzia 8. AJAX, tworzenie wykresów i proste przesy anie danych ............................155 Korzystanie z biblioteki SimplePlot ..........................................................................................155 Generowanie danych do wykresu ..............................................................................................159 Pobieranie danych za pomoc AJAX ........................................................................................162 Podsumowanie ...........................................................................................................................165 Rozdzia 9. Przycisk cofania w AJAX .........................................................................167 Dodawanie ledzenia historii .....................................................................................................167 Korzystanie z historii iframe .....................................................................................................175 Sesje po stronie klienta ..............................................................................................................177 Podsumowanie ...........................................................................................................................179 Cz IV Tworzenie bardzo elastycznych, skalowalnych aplikacji ........ 181 Rozdzia 10. Sesje po stronie klienta i po stronie serwera ...........................................183 ledzenie i wykorzystywanie stanu logowania po stronie klienta .............................................183 ledzenie i wykorzystywanie stanu logowania po stronie serwera ............................................192 Definiowanie i przechowywanie preferencji u ytkownika mi dzy sesjami ...............................197 Wykorzystanie preferencji zapisanych przez u ytkownika .......................................................201 JSON .........................................................................................................................................204 Podsumowanie ...........................................................................................................................205 Spis tre ci 7 Rozdzia 11. Tworzenie modyfikowanych przez u ytkowników serwisów typu mashup .... 207 Tworzenie prostej strony typu mashup ......................................................................................208 Wbudowanie mashupa do systemu obs ugi danych medycznych ..............................................211 Jak to dzia a ...............................................................................................................................214 Podsumowanie ...........................................................................................................................218 Rozdzia 12. Wielowymiarowa komunikacja: VOIP, IM oraz predefiniowane raporty ......219 Udost pnianie VOIP i IM ..........................................................................................................220 Rozproszone, ukierunkowane, raportowane ..............................................................................225 Podsumowanie ...........................................................................................................................243 Dodatki .............................................................................. 245 Dodatek A Indeks znaczników HTML ........................................................................247 Dodatek B Wprowadzenie do PHP ............................................................................255 Historia i t o ...............................................................................................................................256 Czym jest PHP? ...................................................................................................................256 Czym jest Zend? ..................................................................................................................257 Tworzenie aplikacji internetowych ............................................................................................257 Co z czym czy i dlaczego? ..............................................................................................257 Co Oracle wnosi do PHP? ...................................................................................................258 Dlaczego PHP 5 jest wa ny? ...............................................................................................259 Jak korzysta z PHP? ..........................................................................................................259 Jak za pomoc PHP i OCI8 korzysta z bazy danych Oracle? ............................................278 Podsumowanie ...........................................................................................................................299 Dodatek C Wprowadzenie do administracji baz danych Oracle .................................301 Architektura baz danych Oracle ................................................................................................302 Uruchamianie i wy czanie bazy danych Oracle .......................................................................307 Operacje w systemie Linux .................................................................................................307 Operacje w systemie Windows ...........................................................................................311 Uruchamianie i wy czanie procesu nas uchuj cego .................................................................314 Korzystanie z programu SQL*Plus ...........................................................................................319 Interfejs wiersza polece .....................................................................................................321 Zmienne cz ce ..................................................................................................................323 Podsumowanie ...........................................................................................................................323 Dodatek D Wprowadzenie do SQL ............................................................................325 Typy danych Oracle SQL ..........................................................................................................326 J zyk definicji danych (DDL) ...................................................................................................329 Zarz dzanie tabelami i ograniczeniami ...............................................................................330 Zarz dzanie widokami ........................................................................................................333 Zarz dzanie procedurami sk adowanymi ............................................................................334 Zarz dzanie sekwencjami ....................................................................................................335 Zarz dzanie w asnymi typami .............................................................................................336 J zyk pobierania danych (DQL) ................................................................................................338 Zapytania .............................................................................................................................338 J zyk modyfikacji danych (DML) .............................................................................................342 Polecenia INSERT ..............................................................................................................342 Polecenia UPDATE .............................................................................................................344 Polecenia DELETE .............................................................................................................345 J zyk sterowania danymi (DCL) ...............................................................................................345 Podsumowanie ...........................................................................................................................346 8 Oracle Database. Tworzenie aplikacji internetowych w AJAX i PHP Dodatek E Wprowadzenie do PL/SQL ......................................................................347 Struktura bloków PL/SQL .........................................................................................................348 Zmienne, przypisania i operatory ..............................................................................................352 Struktury steruj ce .....................................................................................................................354 Instrukcje warunkowe .........................................................................................................355 P tle .....................................................................................................................................358 Procedury sk adowane, funkcje sk adowane oraz pakiety .........................................................360 Funkcje sk adowane ............................................................................................................361 Procedury ............................................................................................................................364 Pakiety .................................................................................................................................366 Wyzwalacze bazodanowe ..........................................................................................................369 Wyzwalacze DDL ...............................................................................................................370 Wyzwalacze DML ...............................................................................................................370 Wyzwalacze zamiast ........................................................................................................372 Wyzwalacze systemowe lub bazodanowe ...........................................................................372 Kolekcje ....................................................................................................................................373 Typ danych VARRAY ........................................................................................................374 Typ danych NESTED TABLE ............................................................................................375 Tablica asocjacyjna .............................................................................................................376 Interfejs kolekcji ..................................................................................................................379 Wykorzystanie pakietu DBMS_LOB ........................................................................................379 Konfiguracja i weryfikacja rodowiska dla typów LOB .....................................................379 Zapis i odczyt typu danych CLOB ......................................................................................381 Podsumowanie ...........................................................................................................................386 Skorowidz ..............................................................................................387 Rozdzia 11. Tworzenie modyfikowanych przez u ytkowników serwisów typu mashup Gdy wydajne komputery sta y si popularniejsze, u ytkownicy zacz li postrzega je jako narz - dzia do agregacji informacji. Wp yn o to bezpo rednio na rozwój funkcjonalno ci serwisów web. Takie serwisy pozwalaj u ytkownikom wybiera informacje do przegl dania. Dzisiejsze przegl darki umo liwiaj te wy wietlanie kana ów RSS w postaci odno ników na stronie lub zak adek. E-mail ju dawno zosta po czony z przegl dark . Wszystko to, cznie z aplikacjami AJAX, prowadzi u ytkownika do wniosku, e skoro przegl darka s u y do agregacji danych, to takie jest te najwa niejsze zastosowanie komputera. Poniewa u ytkownicy wymagaj coraz wi kszej elastyczno ci aplikacji internetowych, te musz si dostosowa . Jednym ze sposobów na to jest wykorzystanie serwisów typu mashup wy wietlaj cych kilka cz ci ró nych stron na jednej stronie. Przyk adow definicj tego, czym jest mashup, mo na znale w angielskiej Wikipedii pod adresem http://en.wikipedia.org/wiki/ Mashup_ (web_application_hybrid). Przeczytanie tego rozdzia u pozwoli tworzy strony umo liwiaj ce u ytkownikom po czenie danych z ró nych zdalnych serwisów internetowych lub aplikacji w jedn , opart na AJAX apli- kacj internetow . B d oni mogli zdefiniowa , jakie cz ci stron wy wietli i gdzie maj si one znale na stronie. W tym rozdziale zostan poruszone zagadnienia takie jak: wykorzystanie JavaScript do definiowania i wy wietlania wielu fragmentów stron internetowych na jednej stronie, wykorzystanie JSON do zapisywania i pobierania danych, API biblioteki mashup. Dynamiczne us ugi typu mashup umo liwiaj u ytkownikowi dostosowanie aplikacji przy ma ym wysi ku zarówno ze strony samego u ytkownika, jak i programisty. 208 Cz IV Tworzenie bardzo elastycznych, skalowalnych aplikacji Tworzenie prostej strony typu mashup Piel gniarze opiekuj cy si pacjentami w domu nie maj tak du ej kontroli nad otoczeniem swo- ich pacjentów jak piel gniarze w szpitalu. Dlatego potrzebuj narz dzia do kontroli temperatu- ry i jako ci powietrza w okolicy, w której mieszka pacjent. Cho istnieje wiele serwisów, które mog dostarczy cz ci tych informacji dla dowolnej lokalizacji, niewiele z nich lub wr cz aden nie dostarcza wszystkich. Aby mie aktualne informacje i dzia a profilaktycznie, piel gniarze musieliby regularnie odwiedza kilka serwisów w ci gu dnia. Du e ograniczenia czasowe, jakie ludzie ci maj w pracy, i potencjalne zagro enie zdrowia lub ycia pacjentów w wypadku igno- rowania tego typu informacji powoduj , e potrzebny jest prosty sposób wybrania preferowa- nych róde informacji i ich wy wietlania. Serwis typu mashup nadaje si do tego idealnie. Serwis typu mashup sk ada si z fragmentów innych stron internetowych umieszczonych na jednej stronie. W swojej najprostszej postaci mashup jest definiowany przez programist lub in yniera i nie pozwala u ytkownikowi na dodawanie nowych stron. Plik mashupExample.html, który mo na pobra z ftp://ftp.helion.pl/przyklady/ordatw.zip, pokazano na rysunku 11.1. Stano- wi on przyk ad takiego prostego serwisu mashup i wy wietla informacje o parametrach powietrza z obszaru Salt Lake City w ameryka skim stanie Utah. Rysunek 11.1. Prosta strona typu mashup w przegl darce Firefox Ramki mashupa sk adaj si z wy wietlanych stron i daj u ytkownikowi mo liwo zmiany rozmiaru, wybrania cz ci strony ród owej do wy wietlenia, przesuni cia wy wietlanej ramki i jej usuni cia. Strona mashupExample.html zawiera równie przycisk pozwalaj cy u ytkowni- Rozdzia 11. Tworzenie modyfikowanych przez u ytkowników serwisów typu mashup 209 kowi na dodanie nowych ramek do mashupa. Wszystkie zmiany na tej stronie maj charakter tymczasowy, poniewa nie s przesy ane do zapisania na serwerze. Sposób zapisywania tych informacji w bazie danych Oracle zosta opisany w dalszej cz ci tego rozdzia u. Poniewa ramki mashupa odwo uj si do ród owych stron przez sie , zawsze wy wietlaj informacje z aktualnej strony zdalnego serwera. Dlatego gdy strona ród owa si zmienia, zmie- nia si tak e zawarto ramki wy wietlanej w mashupie. Umo liwia to utrzymanie aktualno ci danych. Z tego powodu jedyny czynnik do wzi cia pod uwag przy wybieraniu strony ród owej dla ramki mashupa stanowi stabilno wygl du strony. Poniewa wy wietlany jest tylko wybrany obszar strony ród owej, je li zmieni si uk ad tej strony w obszarze wybranym do wy wietlania, w ramce mashupa b dzie znajdowa a si inna tre . Opisane w tabeli 11.1 API wykorzystywane do tworzenia mashupów zawiera trzy funkcje i zale y od biblioteki dostarczaj cej mechanizm przeci gnij i upu , opisanej w rozdziale 6. Te trzy funkcje umo liwiaj programi cie zdefiniowanie ramek mashupa i pobranie opisu stanu ka dej z nich. Biblioteka mashup znajduj ca si w pliku mashup.js do pobrania z ftp://ftp.helion.pl/przyklady/ ordatw.zip zosta a napisana w taki sposób, by obs ugiwa najnowsze wersje przegl darek Fire- fox i Safari na OS X oraz Firefox i IE w Windows. Dopracowania wymaga wsparcie przegl - darki Firefox dla systemu Linux. Plik mashupExample.html korzysta z dwóch funkcji API opisanych w tabeli 11.1. Sk ada si on z czterech ramek mashupa rozmieszczonych w ró nych miejscach i maj cych ró ne roz- miary wy wietlaj cych aktualn temperatur i informacje o jako ci powietrza w Salt Lake City w ameryka skim stanie Utah.