piątek, Grudzień 31st, 2010

YiiFramework: Obsługa mechanizmu sesji

Normalnie w PHP do przechowywania danych związanych z sesją, używa się tablicy globalnej $_SESSION. Okazuje się jednak, że w przypadku frameworka Yii, do sesji odwołuje się w nieco inny sposób.

Klasyczne przypisanie wartości do tej tablicy nic nie da, albowiem zostanie ona nadpisana przez Yii jego zawartością. Twórcy tego framework’a przyjęli, zresztą słusznie, że najlepszą alternatywą, będzie przechowywanie sesji w bazie danych.

Instalacja

Aby rozpocząć pracę z sesją, należy korzystać z dowolnego mechanizmu składowania danych używanego przez Yii , następnie w głównym pliku konfiguracyjnym, jako jeden z elementów, dodać następujący fragment kodu:

session'=>array(
            'class' => 'CDbHttpSession',
            'connectionID' => 'db',
            'sessionTableName' => 'dbsession',
        ),

Gotowe! Framwork samodzielnie utworzy niezbędną tabelę ‚dbsession’ w bazie danych, do której prowadzi połączenie, którego ID podano w konfiguracji.

Jak używać?

Od tego momentu, tablica z sesją dostępna jest przez wywołanie Yii::app()->session. Ponieważ dostępny jest zarówno setter jak i getter, do dowolnego elementu możemy odwoływać się przez klucz: Yii::app()->session['klucz'], oraz przypisywać dowolną wartość: Yii::app()->session['klucz'] = „wartość”.

Be Sociable, Share!

Kategorie: php / poradniki
Możesz śledzić komentarze do tego wpisu poprzez kanał RSS 2.0. Możesz również napisać własny komentarz, lub umieścić odnośnik do tego wpisu, na swojej stronie.

4 komentarze/y

Grudzień 31, 2010
Zdobysław Pierdzioszek

Fajne rozwiązanie, ale ja słyszałem, że wiele firm robi tak, że hacker00000je Yii i używa sesji jak się im tylko podoba – np. jest taka jedna wielka korporacja w bielsku, ale nie mogę podać jej nazwy, bo by mnie Jolaos zniszczył !


Styczeń 2, 2011
crackcomm

„Ponieważ dostępny jest zarówno setter jak i getter, do dowolnego elementu możemy odwoływać się przez klucz: Yii::app()->session['klucz'], oraz przypisywać dowolną wartość: Yii::app()->session['klucz'] = „wartość”.”

Jaki setter i getter?
To jest zwykła ‚funkcja’ php’a.


Styczeń 2, 2011
Dawid Pośliński

@Crackcomm
W przypadku, gdyby to była zmienna prywatna, metoda „magiczna” __set / __get, wyrzuciła by błąd o tym fakcie. Standardowo w php’cu > 5.x, są one zaimplementowane dla właściwości, ale nic nie stoi na przeszkodzie, żeby je nadpisać i nieco zmienić „zachowanie”.

W niektórych językach, standardowo nie są one implementowane, stąd moja zwrócenie uwagi na to.


Czerwiec 3, 2012

http://adf.ly/4yd3N


  • *

    Spam Protection by WP-SpamFree