Öne Çıkanlar
Dreamweaver 8
|
Uzmanlar İçin PHP 5
|
PHP 5
|
MySQL ve PostgreSQL ile Veritabanı Programlama
|
Anket
PHP Session Class
Projemizi geliştirken her bir konu başlığını bir class içerisinde toplamanız ilerde karşılaşabileceğiniz problemleri yönetmenizde size büyük esneklik sağlayacaktır.
Mesela session bilgilerini alırkenbir işlem yapmak istediğinizde, burada yer alan getSession metodunda yapacağınız bir değişiklik, tüm projenizde geçerli olacaktır.
Aksi takdirde bu tip bir durumda kaldığınızda haliniz nice olur?
<?php
/**
* site içerisinde ki tüm session işlemlerini yürüten class
*
* @author Mehmet Şamlı
*/
class session
{
/**
* class version
*
*/
const VERSION = 1.0;
/**
* session name
*
*/
const SESSION_NAME = 'JSESSIONID';
/**
* class'ın ana construct'ı
* Bu alanda session name belirtilip session start edilir
*
* @return void
*/
public static function set()
{
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path' , 'tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15');
self::setSessionName();
self::startSesssion();
}
/**
* session işlemini açar
*
* @return void
*/
private function startSesssion()
{
session_start();
}
/**
* session name set eder
* construct metodunda çağrılır
*
* @return void
*/
private function setSessionName()
{
session_name(self::SESSION_NAME);
}
/**
* session atan method. Session için array olarak giden parametredeki
* tüm değerleri session olarak atar
* array('name'=>'Mehmet')
*
* @param Array $sessionArr
* @return boolean
*/
public static function createSession($sessionArr)
{
if ( is_array($sessionArr) )
{
$count = count($sessionArr);
if ($count%2==0)
{
$i=0;
while ($i<$count)
{
$_SESSION[$sessionArr[$i]] = $sessionArr[$i+1];
$i+=2;
}
}
return true;
}
return false;
}
/**
* session işlemlerini sonlandırmak için kullanılan method
* tek tek session'ları array olarak göndererek de silebildiği gibi
* $all parametresini true olarak göndererek tüm session'ları silebilir
*
* @param array $sessionArr array('fname','lname')
* @param boolean $all
* @return boolean
*/
public static function deleteSession($sessionArr,$all=false)
{
/**
* tüm session'ları siler
*/
#########################
if ($all)
{
session_destroy();
return true;
}
#########################
/**
* dizi olarak gelen session'ları siler
*/
#####################################
if (is_array($sessionArr))
{
$count = count($sessionArr);
$i=0;
while ($i<$count)
{
unset($_SESSION[$sessionArr[$i]]);
$i++;
}
return true;
}
return false;
#####################################
}
/**
* session id'sini veren method
* $reGenerate parametresi true olarak gönderilirse
* session_id yi yeniden düzenleyerek response eder
*
* @param boolean $reGenerate
* @return string
*/
public function getSessionId($reGenerate=false)
{
if ($reGenerate)
session_regenerate_id();
return session_id();
}
/**
* session bilgisini get eder
*
* @param string $name
* @return string
*/
public static function getSession($name)
{
return addslashes($_SESSION[$name]);
}
/**
* session olup olmadığını test eder
*
* @param string $sessionName
* @return boolean
*/
public function sessionVariable($sessionName)
{
if ( isset($_SESSION[$sessionName]) )
return true;
else
return false;
}
/**
* session datasının hangi dizinde olduğunu get eder
*
* @return string
*/
public static function getSessionPath()
{
return session_save_path();
}
/**
* destruct method
*
* @return void
*/
public function __destruct()
{
}
/**
* olmayan method
*
* @param string $name
* @param array $arguments
*/
public function __call($name, $arguments)
{
echo "Olmayan method '{$name}' "
. implode(', ', $arguments). "\n";
}
/**
* olmayan static method
*
* @param string $name
* @param array $arguments
*/
public static function __callStatic($name, $arguments)
{
echo "Olmayan method '{$name}' "
. implode(', ', $arguments). "\n";
}
}
?>
