CodeIgniter 4 Session Kullanımı

Codeigniter 4

Web projelerinde en sık ihtiyaç duyduğumuz konulardan biri, şüphesiz oturum (session) yönetimi. Kullanıcı girişleri, geçici mesajlar, sepet işlemleri derken session kullanımı neredeyse her projede karşımıza çıkıyor. Bu yazıda, CodeIgniter 4 ile session nasıl yönetilir, nelere dikkat edilmeli birlikte bakalım.

CodeIgniter 4’te Session Sistemi Nasıl Çalışır?

CodeIgniter 4, oturumları Config\App.php dosyasında tanımladığın ayarlara göre yönetiyor. Varsayılan olarak CodeIgniter\Session\Handlers\FileHandler ile oturumlar dosya tabanlı olarak tutulur. Dilersen oturumları veritabanında da saklayabilirsin.

Session Başlatmak

CodeIgniter 4’te session sistemi otomatik olarak başlatılır. Ama yine de controller veya model içinde kullanmak istersen şu şekilde çağırabilirsin:

$session = session();

Session Veri Kaydetme

$session = session();
$session->set('username', 'eminylmz');

Birden fazla veri eklemek istersen dizi şeklinde gönderebilirsin:

$session->set([
    'username' => 'eminylmz',
    'logged_in' => true,
]);

Session’dan Veri Okuma

$username = session()->get('username');

Eğer ilgili veri yoksa null döner. Dilersen şöyle bir kontrol de ekleyebilirsin:

if (session()->has('username')) {
    // kullanıcı oturumu var
}

Session Verisini Silme

Tek bir veriyi silmek için:

session()->remove('username');

Tüm oturumu silmek istersen:

session()->destroy();

Bu, özellikle kullanıcı çıkış işlemlerinde kullanılır.

Codeigniter 4 Flashdata Nedir?

Flashdata, genellikle form gönderimlerinden sonra kullanıcıya bir mesaj göstermek için kullanılır. Oturumda sadece bir sonraki isteğe kadar saklanır. Örneğin:

session()->setFlashdata('success', 'Kayıt başarılı!');

Ve view dosyasında şöyle alabilirsin:

<?php if (session()->getFlashdata('success')): ?>
    <div class="alert alert-success">
        <?= session()->getFlashdata('success') ?>
    </div>
<?php endif; ?>

Codeigniter 4 Session Ayarları Nereden Yapılır?

app/Config/App.php içinde aşağıdaki alanlara göz atabilirsin:

public $sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler';
public $sessionCookieName = 'ci_session';
public $sessionExpiration = 7200; // saniye cinsinden
public $sessionSavePath = WRITEPATH . 'session';

Veritabanı üzerinden session tutmak istersen, sessionDriver’ı DatabaseHandler yapman ve uygun tabloyu oluşturman gerekir.


Yorumlar (0)

Bir dahaki sefere yorum yaptığınızda kullanılmak üzere adınız ve email adresiniz bu tarayıcıya kaydedilecektir.

    Bu yazıya henüz bir yorum yapılmamış! İlk yorum yapan sen ol!