PHP Sessions için en iyi kütüphane [kapalı]

4 Cevap php

Ben bir süre için şimdi CodeIgniter sistemini kullanarak edilmiştir - fakat it has o short comings bulunuyor. Ben bana öğrettiği için minnettarım, ama şimdi yeni bir non-CodeIgniter proje için bir kitaplık gerekir ve bu yüzden kütüphaneler yok doğru şeyler ve hangi zorunda hangi fikirler etrafında arıyorum. Herhalde ben gereken her şeyi almak için çeşitli kütüphanelerden parçaları almak zorunda olacak.

Ben sadece aldı a Kohana PHP session kütüphane bakmak ve bunu $ _SESSION yerine kullanarak veri erişimi için $ this-> oturuma bir değişikliğini zorlama yerli PHP şekilde döner nasıl gibi.

Her neyse, ben orada ben karıştırmasını olabilir diğer iyi oturum kütüphaneler vardı bilmek istiyordu. Sadece işlevsel Crud yanı sıra bir oturumda ele alınması gereken bir çok şey var.

  • (Yani Facebook veya Flash yükleyicileri) geçen OLMAYAN çerez tabanlı oturum için destek
  • Ancak o zaman bir sonraki sayfa yük sürer ve "Flaş veri" auto-kaldırılır.
  • Programcılar varolan kodunu değiştirmek zorunda kalmamak $ _SESSION veya $ this-> oturumu ile çalışır.
  • Eğer sayfasından id orta yol değiştirmek istediğiniz durumda yeni bir oturum kimliği (yani session_id ('yeni id')) ayarını destekler.
  • Yerine her zaman veri sayfa isteği sonunda tüm verileri kaydeder (ekstra DB sorguları kaydeder) eklenir veya kaldırılır.
  • Dosyaları, tanımlama veya depolama için veritabanı kullanarak destekler. (Veya memcached güzel olurdu)
  • Bir oturum kaçırmak durumunda erişim inkar girişimleri. (IP, useragent veya fingerprint)

Ben sadece CodeIgniter ve Kohana oturum kitaplıkları için mantık üzerinden gidiyor biraz zaman geçirdim ve ben nasıl her başlar aşağıdaki ile geldi ve sayfa için oturumları sona erer.

/**************
** Kohana Sessions
**************/
If not native file storage {
    session_set_save_handler to the storage type (DB, cache, cookie...)
}

set the session_name() so php knows what cookie value to check

start session

/****** Saving ******/

session_write_close() which calls the given handler


/**************
** CI Sessions
**************/

Try to read_session() -> {
    session = Get cookie (if using cookies will also contain data)

    if(database) { 
    	session .= pull data from database
    }

    checks if valid...

    $this->userdata = session data

} else { 
    create a new one
}

/****** Saving ******/

session data is serialized either way

if(cookie) {
    save cookie with serialized data and params like "last_activity"
}
if(database) {
    save serialized data in db and session in cookie
}

4 Cevap

Eğer Zend_Session bir göz var mı?

  • PHP ayarları kullanarak URL üzerinden oturum kimliği geçebilir
  • zaman veya şerbetçiotu yapabilirsiniz expire, belirli oturum değişkenleri (istekleri)
  • diğer uygulamalar içine göç olmayacak o kadar kolay ve ben çok iyi değil bence zaman $_SESSION kullandığınız zaman Zend_Session ile karışıklık
  • Zend_Session oturum verileri kaydetmek için bir adpater bazlı bir yaklaşıma sahiptir. A save-handler veritabanları dahil, ancak özel işlemcileri içeri geçirilecek süredir mimarisi izin verir
  • Zend_Session bir oturumun geçerliliğini kontrol etmek doğrulayıcılar destekler. Burada biz de doğrulama için özel nesneler geçmesine izin veren açık bir mimarisi vardır.
  • Eğer lock bir oturum, aka salt okunur yapabilirsiniz
  • yapabilirsiniz aynı oturum ad birden fazla örneği prevent örnekleme
  • artı ile keşfetmek için bir çok şey var Zend_Session, oturum kimlikleri yenileyici olarak, konu hatırlıyorum-me-kurabiyeler, böylece remember-me-çerezleri iptal ve.

Tamam, özel olmayan $ _SESSION tabanlı CodeIgniter lib, ($ _SESSION kullanın) iki Kohana ve Zend kütüphanelerini ve diğer bazı oturum kütüphaneleri aracılığıyla kazma sonra diğer projelerden benim sorunun cevabı inşa inanıyoruz. (Flaş verileri hariç) yukarıda sıralanan şeylerin hepsini karşılayan bir şey.

Here is the code herkes bunu kullanabilir veya kendi kütüphane inşa ederken okumak istiyorsa. Ben yorum iyice şeyi açıklayan ve bunun üzerine bazı görüş isterdim bir sürü bıraktı. O eski oturumları kaldırılması ve herhangi bir veritabanında oturumları saklamak için desteği ile belirteçleri, flash tabanlı yükleyicileri, çerezler, oturum yenilenmesini her 5 dakika (ya da ne olursa olsun set) destekler, size dosya sistemi, memchache, ya da herhangi başka bir biçimde istediğiniz ayarlayın.

Siz CI kullanabilirsiniz: EchoSession.

Önceki Zebra_Session, a wrapper for PHP’s default session handling functions, using MySQL for storage var

  • PHP'nin varsayılan oturum yönetimi fonksiyonları için bir sarıcı olarak görür, fakat bunun yerine düz dosyalarında oturum verilerini saklamak daha iyi güvenlik ve daha iyi performans sağlayan, bir MySQL veritabanında saklar

  • o bir damla-ve PHP'nin varsayılan oturumu işleyici için seemingless yedek: PHP oturumları olarak önce kütüphaneyi kullanmakla aynı şekilde kullanılacaktır; Eğer herhangi bir mevcut kodunu değiştirmek gerekmez!

  • veriler doğru birden çok eşzamanlı AJAX istekleri ile senaryolarda ele sağlayarak, satır kilitleri uygular

  • Bir dosya sadece

  • olgun, son derece optimize edilmiş ve sürekli geliştirilmektedir

  • very good documentation