1 / 39

Technologie programowania systemów internetowych

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.

alida
Download Presentation

Technologie programowania systemów internetowych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Piotr Czapiewski Wydział Informatyki ZUT Technologie programowania systemów internetowych Wykład 2

  2. Programowanieobiektowe w PHP

  3. Definicja klasy

  4. Tworzenie obiektu

  5. Konstruktor

  6. Konstruktor – wartości domyślne

  7. Zmienna $this • $this – bieżący obiekt

  8. Zmienna $this – zagrożenia • W ciele metody – użycie $this jest konieczne • $this->nazwa – pole klasy • $nazwa – zmienna lokalna Wynik: hau hau<br> Wynik: <br>

  9. Zmienna $this – zagrożenia • W metodzie statycznej – odnosi się do obiektu wołającego

  10. Zmienna $this – zagrożenia • W metodzie statycznej – odnosi się do obiektu wołającego

  11. Przypisywanie obiektów • 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" }

  12. Przypisywanie obiektów • Trzy różne zachowania • Przypisanie • Referencja • Klonowanie

  13. Przypisanie a referencja

  14. Przypisanie a referencja 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"]=> string(7) "hau hau" }

  15. Przypisanie a referencja NULL NULLobject(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> string(7) "hau hau" }

  16. Klonowanie obiektów • $klon =clone $oryginal • Kopia wszystkichwłaściwości obiektu • Opcjonalnie: funkcja __clone() object(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> NULL } object(Zwierze)#2 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> NULL } object(Zwierze)#1 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> string(5) "wrrrr" } object(Zwierze)#2 (2) { ["gatunek"]=> string(4) "pies" ["odglos"]=> NULL }

  17. Dziedziczenie

  18. Dziedziczenie • 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

  19. Iteracja po cechach obiektu var1 => value 1 var2 => value 2 var3 => value 3

  20. Iteracja po cechach obiektu var1 => value 1 var2 => value 2 var3 => value 3 MyClass::iterateVisible: var1 => value 1 var2 => value 2 var3 => value 3 prot => protectedvar priv => privatevar

  21. Obsługa wyjątków

  22. Obsługa wyjątków • Standardowe funkcje i wyrażenia nie rzucają wyjątków • Wynik:

  23. Obsługa wyjątków • Rozwiązanie: set_error_handler()

  24. Dostęp do baz danych PHP Data Objects (PDO)

  25. Dostęp do baz danych w PHP • Klasyczny sposób dostępu do danych • Osobne biblioteki dla różnych baz danych • Dostępne biblioteki dla kilkunastu baz, w tym MySQL, PostgreSQL, Oracle, Informix, DB2, Microsoft SQL Server, Firebird, Paradox, Sybase, SQLite • PDO – PHP Data Objects • Warstwa abstrakcji dostępu do danych • Dostęp do różnych baz danych za pomocą jednego interfejsu • Nie rozwiązuje problemu niezgodności wersji SQL

  26. Nawiązywanie połączenia

  27. Klasa PDO

  28. Wykonywanie zapytań

  29. Zapisywanie danych do bazy

  30. Inne przykłady SQL

  31. Połączenia trwałe • 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ść

  32. Preparedstatement

  33. Preparedstatement

  34. Transakcje • Rozpoczęcie transakcji • $dbh->beginTransaction(); • Zatwierdzenie transakcji • $dbh->commit(); • Wycofanie transakcji • $dbh->rollBack();

  35. Obsługa błędów • 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

  36. Tryb cichy

  37. Tryb ostrzeżeń

  38. Tryb wyjątków

More Related