Technologie tworzenia aplikacji internetowych

1 Technologie tworzenia aplikacji internetowychPiotr Czap...
Author: Sławomira Durma
0 downloads 0 Views

1 Technologie tworzenia aplikacji internetowychPiotr Czapiewski Wydział Informatyki ZUT Technologie tworzenia aplikacji internetowych Wykład 1

2 Architektura aplikacji internetowychArchitektura trójwarstwowa (3-tier) Interfejs użytkownika Prezentacja wyników Warstwa prezentacji Logika biznesowa Przetwarzanie danych Kontrola przepływu informacji Warstwa aplikacji Bazy danych Składowanie i pobieranie danych Warstwa danych

3 Architektura aplikacji internetowychArchitektura trójwarstwowa (3-tier) Przeglądarka WWW HTML, CSS, JavaScript, Flash Warstwa prezentacji Serwer WWW, serwer aplikacji PHP, Java Servlets, JSP, EJB Warstwa aplikacji Serwer bazy danych PostgreSQL, MySQL, Oracle JDBC, ODBC, JDO, ADO.NET Warstwa danych

4 Architektura aplikacji internetowychArchitektura wielowarstwowa (multi-tier, n-tier) Warstwa prezentacji JSP, Java Servlets Warstwa logiki prezentacji Enterprise Java Beans Warstwa logiki biznesowej Warstwa danych Web tier Business tier

5 Architektura systemów internetowychArchitektura SOA (Service-Oriented Architecture) Grupowanie funkcjonalności wokół procesów biznesowych Udostępnianie funkcjonalności w postaci usług

6 Serwer WWW a serwer aplikacjiObsługa żądań HTTP, udostępnianie dokumentów, komunikacja z przeglądarką WWW Uwierzytelnianie, kontrola dostępu Przykładowe serwery: Apache, IIS, lighttpd Serwer aplikacji Platforma uruchamiania warstwy aplikacji, logiki biznesowej, usług sieciowych Komunikacja z warstwą klienta i warstwą danych Przykładowe serwery: Tomcat, JBoss, Glassfish, .NET Framework, Zend Server, Zope

7 Technologie aplikacji internetowychSmarty, Zend, Symfony, Zoop, CodeIgniter… CGI, Perl, PHP, ColdFusion, ASP… JSP, JSF, Struts, Spring, Tapestry, GWT, Seam… Java, .NET, C#, VB, Ruby, RoR, Flex…

8 PHP PHP: Hypertext Preprocessor

9 PHP: Hypertext PreprocessorJęzyk skryptowy ogólnego przeznaczenia Główne zastosowanie: dynamiczne strony internetowe, server-side scripting Powstanie i rozwój Pierwsza wersja: 1995 r. Twórca: Rasmus Lerdorf Obecnie rozwijany przez PHP Group, Open source Zalety Dostępny dla większości platform Łatwy w użyciu Szybki w działaniu

10 Popularność PHP

11 Historia PHP Początki: 1994 r. Rasmus Lerdorf. Prywatny projekt, wsparcie swojej strony domowej. Proste programy CGI w C, zastąpiły skrypty w Perlu. Potem dodał obsługę formularzy i baz danych – PHP/FI. Obiektowość: w wersji 3, prawdziwa w 5. PHP Data Objects w 5.

12 PHP: osadzanie w HTML Example echo "Hi, I'm a PHP script!"; ?>

13 Proces generowania stronyDziała jak filtr. Na wejściu: tekst przeplatany PHP. Na wyjściu: strumień danych/tekstu. Na początku: interpreter. Obecnie: kompilator, bytecode, Zend Engine służy za VM.

14 Proces generowania stronyZasada działania Początkowo: kod interpretowany Obecnie: kod kompilowany do postaci bytecodu uruchamianego przez Zend Engine Działa jak filtr. Na wejściu: tekst przeplatany PHP. Na wyjściu: strumień danych/tekstu. Na początku: interpreter. Obecnie: kompilator, bytecode, Zend Engine służy za VM.

15 Jak zacząć? Serwer WWW Moduł PHP Baza danychApache – Moduł PHP Baza danych MySQL – PostgreSQL – Paczuszka – wszystko w jednym XAMPP –

16 Jak zacząć? Środowisko programistyczne (IDE)Netbeans + PHP plugin – Eclipse + PDT plugin – Aptana –

17 Programowanie w PHP

18 Składnia PHP Przeplatanie PHP i HTMLBlok kodu PHP może być ograniczony przez:

19 Przeplatanie PHP i HTML

20 Przeplatanie PHP i HTML

21 Komentarze Komentarze w stylu języka C Komentarze w stylu PerlaJednolinijkowe Blokowe Komentarze w stylu Perla

22 Zmienne Identyfikatory zmiennych Znak $ + nazwa zmiennej$x, $y, $username, $_A27 Rozróżniana wielkość liter $kartofel != $Kartofel != $KARTOFEL Dozwolone znaki: Litery, cyfry, znaki podkreślenia Nazwa zmiennej musi zaczynać się od litery lub podkreślenia

23 Przypisywanie zmiennychDomyślnie zmienne przypisywane są przez wartość: Przypisanie przez referencję:

24 Przypisywanie zmiennychUwaga na referencje:

25 Inicjalizacja zmiennychDeklaracja i inicjalizacja zmiennych nie jest konieczna Zmienne inicjowane są wartością domyślną danego typu boolean: false, integer: 0, string: "" Niebezpieczeństwo: Sprawdzenie czy zmienna została zainicjowana: Brak błędu Wynik: 7 Niebezpieczeństwa polegania na niezainicjowany zmiennych: Includowanie skryptów korzystających z tych samych zmiennych Zmienne przekazane przez hackera GETem lub cookie

26 Typy zmiennych Typów zmiennych w PHP nie trzeba deklarowaćTyp zmiennej określany jest na podstawie kontekstu, w jakim zmienna została użyta Automatyczna konwersja typów

27 Łańcuchy tekstowe Łańcuch może być ograniczony:Apostrofami – 'Ala ma kota' Cudzysłowem – "Ala ma kota”

28 Łańcuchy ograniczone apostrofamiWewnątrz możemy umieszczać cudzysłów Aby w środku łańcucha umieścić apostrof, poprzedzamy go znakiem backslash: \' Aby umieścić backslash na końcu łańcucha lub przed znakiem apostrofu, wpisujemy dwa znaki backslash: \\ Backslash umieszczony przed innym znakiem zostanie wyświetlony normalnie Zmienne wewnątrz łańcucha nie są rozwijane Łańcuch może zawierać znaki nowej linii

29 Łańcuchy ograniczone apostrofami

30 Łańcuchy ograniczone cudzysłowemWięcej sekwencji specjalnych, np. \n, \r, \t, \$, \" Zagnieżdżanie cudzysłowu i apostrofu

31 Łańcuchy ograniczone cudzysłowemRozwijanie zmiennych zawartych w łańcuchu

32 Operacje na łańcuchach tekstowychOperator konkatenacji – kropka Zmiana wielkości znaków

33 Operacje na łańcuchach tekstowychDostęp do pojedynczych znaków Długość łańcucha Wyszukanie i zamiana ciągów znaków

34 Operacje na łańcuchach tekstowychZamiana łańcucha na liczbę Automatyczna, typ zależny od kontekstu Jeśli łańcuch zawiera: kropkę, 'e' lub 'E'  typ float W przeciwnym wypadku  typ integer Zamieniana jest początkowa część łańcucha, tworząca liczbę Jeśli łańcuch nie zawiera liczby  wartość zero

35 Instrukcje sterujące Instrukcja warunkowa if

36 Instrukcje sterujące Instrukcja warunkowa if

37 Instrukcje sterujące Pętle while i do-while

38 Instrukcje sterujące Pętle for i foreach

39 Instrukcje sterujące Instrukcja wyboru switch

40 Tablice Tablica w PHP jest w rzeczywistości uporządkowaną mapąprzechowuje pary klucz-wartość Tablicy można użyć jako: tablicy, listy, mapy, słownika, stosu, kolejki… Wielowymiarowe tablice tablice zawierające tablice

41 Tablice Tworzenie tablicy

42 Tablice Dopisywanie danych na końcu tablicy Usuwanie danych z tablicy1 2 3 8 13 18

43 Tablice Iterowanie po tablicy – pętla foreach

44 Funkcje Definicja i wywołanie funkcjiFunkcja może być zdefiniowana później, niż użyta Nazwa funkcji – reguły jak dla zmiennych Zawartość – dowolny kod, także inne funkcje i klasy Zwracanie wartości jest opcjonalne. Zwrócić można wszystko – także tablicę.

45 Funkcje warunkowe

46 Funkcje warunkowe

47 Argumenty funkcji Domyślnie argumenty przekazywane są przez wartośćPrzekazywanie przez referencję

48 Argumenty funkcji Argumenty z wartością domyślnąMaking a cup of cappuccino. Making a cup of . Making a cup of espresso.

49 Argumenty funkcji Argumenty z wartością domyślną – błędne użycie ŹLEDOBRZE

50 rejestruj.php?imie=Jan&nazw=KowalskiObsługa formularzy rejestruj.php rejestruj.php?imie=Jan&nazw=Kowalski index.html

method="get" > Imię: Nazwisko:

51 Obsługa formularzy Formularz HTML Tablice globalne: $_GET, $_POST

52 Obsługa formularzy Zabezpieczenie przed wstrzykiwaniem kodu HTML lub JavaScript Obsługa sesji Programowanie obiektowe Rozbudowany przykład