Technologie programowania systemów internetowych

51
Piotr Czapiewski Wydział Informatyki ZUT Wykład 2 Wykład 2

description

Piotr Czapiewski Wydział Informatyki ZUT. Technologie programowania systemów internetowych. Wykład 2. Programowanie obiektowe w PHP. Definicja klasy. Tworzenie obiektu. Konstruktor. Konstruktor – wartości domyślne. Zmienna $ this. $this – bieżący obiekt. Zmienna $ this – zagrożenia. - PowerPoint PPT Presentation

Transcript of Technologie programowania systemów internetowych

Page 1: Technologie programowania systemów internetowych

Piotr CzapiewskiWydział Informatyki ZUT

Wykład 2Wykład 2

Page 2: Technologie programowania systemów internetowych
Page 3: Technologie programowania systemów internetowych
Page 4: Technologie programowania systemów internetowych
Page 5: Technologie programowania systemów internetowych
Page 6: Technologie programowania systemów internetowych
Page 7: Technologie programowania systemów internetowych

$this – wskazuje na bieżący obiekt

Page 8: Technologie programowania systemów internetowych

W ciele metody – użycie $this jest konieczne $this->nazwa – pole klasy $nazwa – zmienna lokalna

Wynik:hau hau<br>

Wynik:hau hau<br>

Wynik:<br>

Wynik:<br>

Page 9: Technologie programowania systemów internetowych

W metodzie statycznej – odnosi się do obiektu wołającego

Page 10: Technologie programowania systemów internetowych

W metodzie statycznej – odnosi się do obiektu wołającego

Page 11: Technologie programowania systemów internetowych

Przypisanie istniejącego obiektu do nowej zmiennej

Nowa zmienna będzie odnosić się do tej samej instancji

object(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> NULL } object(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> NULL }

object(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> string(7) "hau hau" } object(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> string(7) "hau hau" }

object(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> NULL } object(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> NULL }

object(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> string(7) "hau hau" } object(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> string(7) "hau hau" }

Page 12: Technologie programowania systemów internetowych

Trzy warianty:

Przypisanie

Referencja

Klonowanie

Page 13: Technologie programowania systemów internetowych

Zwierze{ gatunek : "pies"

}

Zwierze{ gatunek : "pies"

}

$a$a $b$b $c$c

Page 14: Technologie programowania systemów internetowych

Zwierze{ gatunek : "żyrafa" }

Zwierze{ gatunek : "żyrafa" }

$a$a $b$b $c$c

Page 15: Technologie programowania systemów internetowych

Zwierze{ gatunek : "żyrafa" }

Zwierze{ gatunek : "żyrafa" }

$a$a $b$b $c$c

Zwierze{ gatunek :

"kot" }

Zwierze{ gatunek :

"kot" }

Page 16: Technologie programowania systemów internetowych

Zwierze{ gatunek : "pies"

}

Zwierze{ gatunek : "pies"

}

$a$a $b$b $c$c

Page 17: Technologie programowania systemów internetowych

$klon = clone $oryginal

Kopia wszystkichwłaściwości obiektu

Opcjonalnie:funkcja __clone()

Zwierze{ gatunek : "pies"

}

Zwierze{ gatunek : "pies"

}

$a$a $b$b

Zwierze{ gatunek : "pies"

}

Zwierze{ gatunek : "pies"

}

Page 18: Technologie programowania systemów internetowych
Page 19: Technologie programowania systemów internetowych

Brak dziedziczenia wielorakiego Można nadpisać metody klasy bazowej Dostęp do nadpisanych metod klasy

nadrzędnej – parent::

Nie można nadpisać metody zdefiniowanej jako final

Page 20: Technologie programowania systemów internetowych

var1 => value 1var2 => value 2var3 => value 3

var1 => value 1var2 => value 2var3 => value 3

Page 21: Technologie programowania systemów internetowych

var1 => value 1var2 => value 2var3 => value 3

MyClass::iterateVisible:var1 => value 1var2 => value 2var3 => value 3prot => protected varpriv => private var

var1 => value 1var2 => value 2var3 => value 3

MyClass::iterateVisible:var1 => value 1var2 => value 2var3 => value 3prot => protected varpriv => private var

Page 22: Technologie programowania systemów internetowych
Page 23: Technologie programowania systemów internetowych

Standardowe funkcje i wyrażenia nie rzucają wyjątków

Wynik:

Page 24: Technologie programowania systemów internetowych

Rozwiązanie: set_error_handler()

Page 25: Technologie programowania systemów internetowych

PHP Data Objects (PDO)

Page 26: Technologie programowania systemów internetowych
Page 27: Technologie programowania systemów internetowych
Page 28: Technologie programowania systemów internetowych
Page 29: Technologie programowania systemów internetowych
Page 30: Technologie programowania systemów internetowych
Page 31: Technologie programowania systemów internetowych

Array( [id] => 2 [0] => 2 [tytul] => PHP dla opornych [1] => PHP dla opornych [autor] => Jan Kowalski [2] => Jan Kowalski [wydawnictwo] => 2 [3] => 2)

Array( [id] => 2 [0] => 2 [tytul] => PHP dla opornych [1] => PHP dla opornych [autor] => Jan Kowalski [2] => Jan Kowalski [wydawnictwo] => 2 [3] => 2)

Page 32: Technologie programowania systemów internetowych
Page 33: Technologie programowania systemów internetowych
Page 34: Technologie programowania systemów internetowych

Zwykłe połączenie jest zamykane po zakończeniu skryptu

Połączenie trwałe jest zachowywane do późniejszego wykorzystania

Poprawa wydajności Nie wpływa na funkcjonalność

Page 35: Technologie programowania systemów internetowych
Page 36: Technologie programowania systemów internetowych
Page 37: Technologie programowania systemów internetowych

Rozpoczęcie transakcji $dbh->beginTransaction();

Zatwierdzenie transakcji $dbh->commit();

Wycofanie transakcji $dbh->rollBack();

Page 38: Technologie programowania systemów internetowych
Page 39: Technologie programowania systemów internetowych

Tryby obsługi błędów w PDO Tryb cichy – PDO::ERRMODE_SILENT

▪ W razie wystąpienia błędu ustawiane są kody błędu w obiektach PDO

▪ Informacje o błędzie do pobrania za pomocą:PDO::errorCode(), PDO::errorInfo()

Tryb ostrzeżeń – PDO::ERRMODE_WARNING

▪ Dodatkowo emitowane ostrzeżenie

Tryb wyjątków – PDO::ERRMODE_EXCEPTION

▪ Rzucany jest wyjątek PDOException

Page 40: Technologie programowania systemów internetowych
Page 41: Technologie programowania systemów internetowych
Page 42: Technologie programowania systemów internetowych
Page 43: Technologie programowania systemów internetowych

Biblioteka Doctrine ORM

Page 44: Technologie programowania systemów internetowych
Page 45: Technologie programowania systemów internetowych
Page 46: Technologie programowania systemów internetowych

Konfiguracja

Generowanie mapowania na podstawie istniejącej bazy danych

Generowanie klas encji na podstawie mapowania

doctrine.bat orm:convert:mapping --from-database xml config\xmldoctrine.bat orm:convert:mapping --from-database xml config\xml

doctrine.bat orm:generate:entities modeldoctrine.bat orm:generate:entities model

bootstrap.php, cli-config.phpbootstrap.php, cli-config.php

Page 47: Technologie programowania systemów internetowych
Page 48: Technologie programowania systemów internetowych
Page 49: Technologie programowania systemów internetowych

Zapytanie w języku DQL

Page 50: Technologie programowania systemów internetowych

Edycja istniejącego obiektu

Page 51: Technologie programowania systemów internetowych

Tworzenie nowego obiektu