Wstęp. Ale po co? Implementacja

Podobne dokumenty
MVC w praktyce tworzymy system artykułów. cz. 1

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Programowanie obiektowe

Klasy i obiekty cz II

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

PHP 5 język obiektowy

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

Wykład 12. Programowanie serwera MS SQL 2005 w C#

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Enkapsulacja, dziedziczenie, polimorfizm

Programowanie obiektowe

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

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

Instrukcja 3 PROGRAMOWANIE OBIEKTOWE

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe

KUP KSIĄŻKĘ NA: PRZYKŁADOWY ROZDZIAŁ KOMUNIKATY DLA UŻYTKOWNIKA I ROLE UŻYTKOWNIKÓW

Programowanie obiektowe

Programowanie obiektowe

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

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

Programowanie WEB Lista nr 10 (termin ) mgr inż. Adam Dudek

Współbieżność w środowisku Java

Wstęp do programowania obiektowego. Wykład 2

Kurs WWW. Paweł Rajba.

KUP KSIĄŻKĘ NA: PRZYKŁADOWY ROZDZIAŁ KOMUNIKATY DLA UŻYTKOWNIKA

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

Kurs programowania. Wykład 9. Wojciech Macyna

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

Technologie obiektowe

Programowanie obiektowe

Wzorce logiki dziedziny

Programowanie obiektowe

Systemy internetowe Wykład 3 PHP

Podstawy i języki programowania

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Microsoft IT Academy kurs programowania

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

Podstawy programowania III

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

TEMAT : KLASY POLIMORFIZM

Db4o obiektowa baza danych wersja.net

Dokumentacja kodu PHP

Dawid Gierszewski Adam Hanasko

Metody Metody, parametry, zwracanie wartości

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

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

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Programowanie zorientowane obiektowo. Mateusz Kołecki

Programowanie obiektowe

Podstawy programowania obiektowego

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Programowanie obiektowe

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

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

Wywoływanie metod zdalnych

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Smarty PHP. Leksykon kieszonkowy

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

Programowanie obiektowe i C++ dla matematyków

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

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Serwery aplikacji. dr Radosław Matusik. radmat

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Podstawy programowania obiektowego

Zastosowanie komponentów EJB typu Session

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Aplikacje w środowisku Java

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

Programowanie obiektowe

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi.

Przykład zastosowania notacji UML dla realizacji zastosowania wzorca Mediator (materiały dla studentów na prawach rękopisu)

Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki

Podstawy programowania III WYKŁAD 6

Przewodnik krok po kroku:

Programowanie obiektowe

Referencje do zmiennych i obiektów

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

Programowanie wielowątkowe. Jarosław Kuchta

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

Wykład 4. Klasa List Kolejki Stosy Słowniki

Wprowadzenie do szablonów klas

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Projektowanie aplikacji internetowych laboratorium

Programowanie obiektowe zastosowanie języka Java SE

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Projektowanie klas c.d. Projektowanie klas przykład

Programowanie 2. Język C++. Wykład 2.

Obsługa wyjątków. Język C++ WW12

Transkrypt:

Wstęp Mechanizm sesji jest jedną z podstawowych form komunikacji pomiędzy skryptami jako jedyna tablica z super globalnych nie jest widoczna dla użytkownika. Mimo, że PHP od wersji 4 staje się coraz bardziej obiektowe mechanizm sesji ma nadal strukturę funkcyjną. Jednak, nic nie stoi na przeszkodzie by samemu stworzyć w pełni obiektową obsługę sesji... Ale po co? Mechanizm sesji napisany obiektowo pozwala na wygodniejsze zarządzanie zmiennymi sesyjnymi. Ponadto, możemy wzbogacić mechanizm o dodatkowe możliwości (np. możemy stworzyć przestrzenie nazw ułatwiające zarządzanie zmiennymi sesyjnymi). Co więcej, nic nie stoi na przeszkodzie by stworzyć własny mechanizm oparty np. na bazie danych. Dzięki wykorzystaniu obiektowości można w łatwy sposób zmienić sposób funkcjonowania sesji już w istniejącej aplikacji. Implementacja <?php @author Łukasz Socha <> @version: 1.0 @license http://www.gnu.org/copyleft/lesser.html This class includes methods for session operation. @package Core class Session { It starts the session. @return void 1/5

public static function start() { session_start(); It sets the value to the session. @param string $name @param string $value @param string $namespace @return void public static function set($name, $value, $namespace='default') { $_SESSION[$namespace][$name]=$value; It checks if variable is seted in the session. @param string $name @param string $namespace @return bool public static function is($name, $namespace='default') { return isset($_session[$namespace][$name]); It gets the value from the session. @param string $name @param string $namespace 2/5

@return mixed public static function get($name, $namespace='default') { return $_SESSION[$namespace][$name]; It gets and clears the value from the session. @param string $name @param string $namespace @return mixed public static function getonce($name, $namespace='default') { $var=$_session[$namespace][$name]; self::clear($name, $namespace); return $var; It clears the var of the session @param string $name @param string $namespace @return void public static function clear($name, $namespace='default') { unset($_session[$namespace][$name]); It clears the namespace of the session 3/5

@param string $namespace @return void public static function clearnamespace($namespace='default') { unset($_session[$namespace]); It clears all vars of the session @return void public static function clearall() { $_SESSION=array(); It destroys the session. @return void public static function destroy() { self::clearall(); session_destroy(); It sets the session name. @param string $name @return void 4/5

?> public static function name($name=null) { session_name($name); Powyższy kod jest przykładową implementacją obiektowego mechanizmu sesji bazującego na wbudowanych funkcjach PHP. Dzięki wykorzystaniu statycznych metod nie musimy tworzyć instancji obiektów. Metody start() i destroy() służą do tworzenia i niszczenia sesji. Natomiast, za pomocą set() i get() ustawiamy i pobieramy wartości zmiennych. Ciekawym rozwiązaniem jest użycie namespaces zaproponowane we framework'u Zenda, które ułatwia uporządkowanie danych. Metody clearall(), clearnamespace() i clear() służą do czyszczenia zmiennych. Zakończenie PHP z wersji na wersje staje się coraz bardziej obiektowe. Niestety jest jeszcze wiele elementów napisanych strukturalnie. Jednak, niektóre elementy, takie jak mechanizm sesji, warto przepisać wykorzystując programowanie obiektowe. Bazując na klasie Session można dowolnie rozbudowywać mechanizm. 5/5