Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody



Podobne dokumenty
OBIEKTY PHP. G. Panuś

Wykład 8: klasy cz. 4

Kurs WWW. Paweł Rajba.

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Wykład 5: Klasy cz. 3

Rozdział 4 KLASY, OBIEKTY, METODY

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Materiały do zajęć VII

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

PHP 5 język obiektowy

PHP: bazy danych, SQL, AJAX i JSON

TEMAT : KLASY DZIEDZICZENIE

WYMAGANIA EDUKACYJNE. Programowanie Aplikacji Internetowych klasa III

Oracle PL/SQL. Paweł Rajba.

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy.

Multimedia JAVA. Historia

Programowanie obiektowe

Zmienne i stałe w PHP

ZMIENNE. Podstawy PHP

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Podstawy programowania III

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

ZASADY PROGRAMOWANIA KOMPUTERÓW

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Programowanie obiektowe

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Wykład 4: Klasy i Metody

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Autor: Joanna Karwowska

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

10. Programowanie obiektowe w PHP5

Konstruktor destruktor Programowanie obiektowe

Definiowanie własnych klas

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

Programowanie obiektowe

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Sesje, ciasteczka, wyjątki. Ciasteczka w PHP. Zastosowanie cookies. Sprawdzanie obecności ciasteczka

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Czym są właściwości. Poprawne projektowanie klas

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Laboratorium 7 Blog: dodawanie i edycja wpisów

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Smarty PHP. Leksykon kieszonkowy

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Enkapsulacja, dziedziczenie, polimorfizm

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Projekt Hurtownia, realizacja rejestracji dostaw produktów

PHP: bloki kodu, tablice, obiekty i formularze

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

Podstawy JavaScript ćwiczenia

Deklaracja struktury w C++

Dokumentacja do API Javy.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Instrukcja 3 PROGRAMOWANIE OBIEKTOWE

Laboratorium 1 - Programowanie proceduralne i obiektowe

Dziedziczenie jednobazowe, poliformizm

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Technologie obiektowe

Projektowani Systemów Inf.

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Szablony klas, zastosowanie szablonów w programach

Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)

Podstawy programowania obiektowego

Konfiguracja programu

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

akademia androida Składowanie danych część VI

PARADYGMATY PROGRAMOWANIA Wykład 4

Biuletyn informacyjny WeriOn. 3/2015 Instrukcja konfiguracji połączenia z programem Subiekt GT r.

Zaawansowane programowanie w języku C++ Klasy w C++

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Programowanie obiektowe

Programowanie obiektowe

Transkrypt:

Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć, że obiekt to coś, co może przechowywać dane oraz wykonywać różne operacje. Trzeba także wiedzieć, że jeden obiekt może zawierać inne obiekty dokładnie tak jak w świecie realnym. Przecież wewnątrz przykładowego samochodu mamy np. fotele, kierownicę, silnik itp.. Nie można jednak tworzyć obiektów bez ich wcześniejszego zaplanowania. Czy da się bowiem skonstruować dom bez planu? Raczej nie. Tak jest też w PHP aby utworzyć obiekt, najpierw trzeba go zaprojektować, utworzyć jego plan. Taki plan obiektu nazywamy klasą. Określa ona, jak będą zbudowane obiekty tworzone na jej podstawie. Innymi słowy, klasa to zdefiniowany przez programistę nowy typ danych. Definicja klasy Klasa jest definiowana za pomocą słowa kluczowego class. Ogólna postad takiej konstrukcji jest następująca: //definicja klasy Klasa może zawierad nieograniczoną liczbę zmiennych (nazywanych polami, lub właściwościami) oraz funkcji (nazywanych metodami) te elementy nazywamy składowymi klasy. Składowe klasy pola i metody Obiekty mogą przechowywad dane oraz wykonywad zadania. Dane mogą byd przechowywane w zmiennych, które umieszczamy w projekcie obiektu, czyli w klasie. Takie zmienne nazywamy polami klasy. Aby obiekt mógł wykonywad zadania, potrzebny jest z kolei kod wykonywalny. Ten kod umieszczamy w funkcjach przynależnych do klasy. Takie funkcje nazywamy metodami klasy. Definicja pola klasy ma następującą postad: public $nazwa_pola;

Metody klasy tworzy się podobnie jak zwykłe funkcje, używając słowa kluczowego function. Typowa definicja będzie miała postad: Public function nazwa_metody( argumenty) //wnętrze metody Aby lepiej przedwiczyd tego typu konstrukcje, utworzymy teraz prostą klasę o nazwie Uzytkownik, której zadaniem będzie obsługa danych związanych z użytkownikami serwisu internetowego. Będzie ona zawierała tylko dwa pola: nazwa przechowuje nazwę użytkownika id przechowuje identyfikator użytkownika. Do klasy Uzytkownik dodajmy teraz cztery metody: ustawnazwe zmienia wartośd pola $nazwa; pobierznazwe pobiera wartośd pola $nazwa; ustawid zmienia wartośd pola $id; pobierzid ustawia wartośd pola $id.

Tworzenie obiektów Gdy mamy zdefiniowaną klasę (czyli nowy typ danych),możemy na jej podstawie tworzyd obiekty. Mówi się, że obiekt jest instancją klasy. Aby go utworzyd, należy użyd słowa new, po którym musi wystąpid nazwa klasy zakooczona nawiasem : new nazwa_klasy(): Aby jednak można było skorzystad z tak utworzonego obiektu, należy go przypisad do jakiejś zmiennej: $nazwa_zmiennej= new nazwa_klasy(); Po takim przypisaniu $nazwa_zmiennej pozwala na odwoływanie się do nowego obiektu typu nazwa_klasy. Odwołania do składowych Aby odwoład się do dowolnej składowej klasy, należy użyd operatora ->. A zatem dla pól takie odwołanie będzie miało postad: $nazwa_obiektu->nazwa_pola;

A dla metod: $nazwa_obiektu->nazwa_metody(argumenty_metody); W przypadku pól w ten sposób można zarówno odczytywad, jak i zapisywad ich wartości. Jeśli na przykład zmienna o nazwie $user zawiera obiekt klasy Uzytkownik, to aby odczytad wartośd pola nazwa i przypisad ją zmiennej $wartośd, należy wykonad instrukcję: $wartość= $user->nazwa; Aby natomiast polu id tego obiektu przypisad wartośd 123 instrukcję: $user->id=123; Sposób odwołania się do składowych klasy Uzytkownik:

Tworzenie konstruktorów Po utworzeniu obiektu jego pola są puste, nie zawierają żadnych wartości. Często nie jest to sytuacja pożądana i należy nadad im pewne wartości początkowe. Załóżmy na przykład, że w przypadku znanej nam już klasy Uzytkownik chcielibyśmy, aby utworzony obiekt tego typu był wypełniony wartościami domyślnymi. Pole nazwa powinno przyjąd wartośd Gośd, a pole id wartośd 0. Do tego celu obiektowe języki programowania udostępniają mechanizm konstruktorów. Konstruktory są to specjalne metody wykonywane podczas tworzenia obiektów danej klasy. Aby zdefiniowad konstruktor, należy umieścid w klasie metodę o nazwie construct, schematycznie: function construct( ) //treść konstruktora //pozostałe składowe Jeśli zatem chcemy, aby obiekty klasy Uzytkownik przyjmowały automatycznie domyślne wartości pól, do klasy należałoby dodać konstruktor w postaci:

Aby się przekonać, że konstruktor faktycznie działa wystarczy wykonać kod skryptu:

Parametry konstruktorów Konstruktory nie muszą byd bezargumentowe, mogą również przyjmowad argumenty, które zostaną użyte na przykład do zainicjowania pól obiektu. function _construct( argument1, argument2, argumentn) //treść konstruktora Jeśli konsruktor przyjmuje argumenty, przy tworzeniu obiektu należy je oczywiście podad, czyli zamiast stosownej do tej pory konstrukcji: $zmienna= new nazwa_klasy() trzeba zastosowad wywołanie: $zmienna= new nazwa_klasy(argument1, argument2, argumentn) W przypadku używanej do tej pory przykładowej klasy Uzytkownik przydatny byłby np. konstruktor, który przyjmowałby dwa argumenty oznaczające nazwę i identyfikator użytkownika. Wykorzystanie konstruktora dwuargumentowego:

Destruktory Destruktory to przeciwieostwo konstruktorów. Są to metody wykonywane wtedy, gdy obiekt jest niszczony, usuwany z pamięci. Są przydatne, jeśli na przykład klasa używa zasobów systemowych, które muszą byd zwolnione przed usunięciem obiektu. Otóż, podobnie jak w przypadku konstruktorów, jest to specjalna funkcja o nazwie destruct, którą należy umieścid w kodzie klasy. function destruct( ) //treść konstruktora //pozostałe składowe Automatyczne ładowanie kodu klasy Definicje klas często przechowuje się w osobnych plikach o nazwach zgodnych z nazwą klasy, np. klasa Uzytkownik była przechowywana w pliku o nazwie Uzytkownik.php. Aby użyd takiej definicji w skrypcie, konieczne jest dołączenie treści pliku za pomocą instrukcji include. Jeśli jednak klas jest dużo, niezbędne staje się używanie wielu instrukcji include. Ten problem można łatwo rozwiązad, stosując technikę automatycznego ładowanie pliku z kodem klasy w momencie pierwszego odwołania do klasy. żywa U się do tego celu funkcji autoload. Obiektowa lista odwiedzin Wiedza o tym kto odwiedza naszą witrynę, niewątpliwie bardzo pomaga w jej prowadzeniu. Z pewnością będzie więc przydatny skrypt, który udostępnia tego typu informacje. Takie zadanie

zrealizujemy w poniższym skrypcie. W bazie danychzapisywane są dane dotyczące: daty i czasu odwiedzin, adresu IP, typu przeglądarki. Klasa Stats obsługiwać będzie połączenie z bazą MySQL i będzie zawierać następujące elementy: 1. Prywatne pole przechowujące identyfikator połączenia z serwerem MySQL. 2.Konstruktor do którego w formie parametrów przekazujemy: - adres serwera MySQL -użytkownika -hasło -nazwę bazy oraz zwracał będzie powodzenie połączenia z bazą. 3. Metodę wstawiania rekordów do tabeli. Metoda jako parametr pobiera zmienną string (zapytanie SQL typu insert) natomiast zwraca liczbę wierszy w bazie, na które zapytanie miało wpływ lub false w razie niepowodzenia. 4. Metodę pobierania rekordów z bazy. Metoda jako parametr pobiera zmienną string (zapytanie SQL typu select) natomiast zwraca tabelę z rekordami lub false w razie niepowodzenia. 5. Destruktor klasy kończący połączenie z bazą