Çerezler Kütüphanesi
Çerez oluşturma, kullanma ve silme gibi işlemleri gerçekleştiren sınıftır. # Kurulum Bu bileşen KUT ile birlikte gelir; ayrıca kurulum gerektirmez. ↓ Paket KUT ile birlikte gelir. # Yapılandı…
This article is currently available in Turkish. Its English translation is being prepared.
Çerez oluşturma, kullanma ve silme gibi işlemleri gerçekleştiren sınıftır.
Kurulum
Bu bileşen KUT ile birlikte gelir; ayrıca kurulum gerektirmez.
↓ Paket KUT ile birlikte gelir.
Yapılandırma
| Cookie | ||
| string | $encode = 'super' | Çerez anahtarlarını şifrelemek için kullanılır. Şifrelenmesi istenmiyorsa bu değer boş bırakılır. |
| Seçenekler | super, golden, md5, sha1 .... | |
| bool | $regenerate = true | Sayfa yenilenmesinde oturum kimliğinin değiştirilip değiştirilmeyeceği. |
| Scalar | $time = 604800 | Çerezin yaşam süresi. |
| string | $path = '/' | Çerezlerin tutulacağı dizin bilgisi. |
| string | $domain = '' | Çerezin istemciye güvenli bir HTTPS bağlantısı üzerinden mi aktarılması gerektiğini belirtmek için kullanılır. |
| bool | $secure = false | Çerezin istemciye güvenli bir HTTPS bağlantısı üzerinden mi aktarılması gerektiğini belirtmek için kullanılır. |
| bool | $httpOnly = true | TRUE olduğu takdirde çerez sadece HTTP protokolü üzerinden erişilebilir olacaktır. Yani çerez, JavaScript gibi betik dilleri tarafından erişilebilir olmayacaktır. |
INI Yapılandırması
Bu ayarların kullanımı Session kütüphanesinde anlatılan kullanımla aynıdır.
Yöntemler
| bool | insert(string $name, $value, int $time = [[CONFIG_TIME]]) |
| mixed | select(string $name) |
| array | selectAll(void) |
| bool | delete(string $name, string $path = [[CONFIG_PATH]]) |
| bool | deleteAll(void) |
| this | time(int $time) |
| this | path(string $path) |
| this | domain(string $domain) |
| this | secure(bool $secure) |
| this | httpOnly(bool $httpOnly) |
| this | encode(string $name, string $value) |
| this | decode(string $hash) |
Insert
Çerez oluşturmak için kullanılır.
Parametreler
| string | $name | Çerez adı. |
| mixed | $value | Çerezin tutacağı değer. |
| Scalar | $time = 604800 | Çerezin yaşam süresi. |
| return | bool | |
Kullanımı
Cookie::insert('example', 'Example Data');
echo Cookie::select('example');
İstenirse değer olarak dizi verisi de tutulabilir.
Cookie::insert('example', ['a', 1, 'b']);
output(Cookie::select('example'));
1 => integer 1 ( length = 1 ),
2 => string 'b' ( length = 3 )
Doğrudan Erişim
Cookie::example('Example Data');
Select
Oluşturulan çerezleri kullanmak için kullanılır. Eğer oturum bulunmazsa FALSE değeri döner.
Parametreler
| string | $name | Çerez adı. |
| return | mixed | |
Kullanımı
Cookie::insert('example', 'Example Data');
echo Cookie::select('example');
Doğrudan Erişim
echo Cookie::example();
SelectAll
Oluşturulan tüm çerezlerin değerlerini dizi olarak almak için kullanılır.
Parametreler
| void | ||
| return | array | |
Kullanımı
Cookie::insert('example', ['a', 1, 'b']);
Cookie::insert('value', 'Value');
output(Cookie::selectAll());
example => string '["a",1,"b"]' ( length = 13 ),
Doğrudan Erişim
output(Cookie::all());
Delete
Oluşturulan çerezleri silmek için kullanılır.
Parametreler
| string | $name | Çerez adı. |
| return | bool | |
Kullanımı
Cookie::insert('example', 'Example Data');
Cookie::delete('example');
echo Cookie::select('example');
Doğrudan Erişim
Cookie::exampleDelete();
DeleteAll
Oluşturulan tüm çerezleri silmek için kullanılır.
Parametreler
| void | ||
| return | bool | |
Kullanımı
Cookie::insert('example', ['a', 1, 'b']);
Cookie::insert('value', 'Value');
Cookie::deleteAll();
output(Cookie::selectAll());
Time
Çerezin yaşam süresini belirlemek için kullanılır. Opsiyonel yöntemdir. Cookie::insert() yönteminin 3. parametresi yerine kullanılır.
Parametreler
| Scalar | $time | Çerezin yaşam süresinin saniye cinsinden belirtilmesidir. |
| return | this | |
Kullanımı
Cookie::time(60 * 60 * 24)->insert('oneDay', 'One Day');
Path
Çerezin tutulacağı dizini belirlemek için kullanılır. Opsiyonel Yöntemdir.
Parametreler
| string | $path | Çerezin hangi dizinde tutulacağı. |
| return | this | |
Kullanımı
Cookie::path('/cookies/')->time(60 * 60 * 24)->insert('example', 'Example Value');
Domain
Çerezinin hangi alan isimleri için geçerli olacağını belirlemek için kullanılır. Opsiyonel Yöntemdir.
Parametreler
| string | $domain | Çerezlerin geçerli olacağı alan adı. |
| return | this | |
Kullanımı
Cookie::domain('example.com')
->path('/cookies/')
->time(60 * 60 * 24)
->insert('example', 'Example Value');
Secure
Çerezin istemciye güvenli bir HTTPS bağlantısı üzerinden mi aktarılması gerektiğini belirtmek için kullanılır. TRUE belirtildiği takdirde, çerez sadece güvenli bağlantı mevcutsa gönderilecektir. Opsiyonel Yöntemdir.
Parametreler
| bool | $secure | Güvenli kip. |
| return | this | |
Kullanımı
Cookie::secure(true)
->domain('example.com')
->path('/cookies/')
->time(60 * 60 * 24)
->insert('example', 'Example Value');
Encode
Çerezin oluştururken hem değeri tutacak anahtarı hemde değerin kendsini şifrelemek için kullanabilirsiniz. Burada dikkat edilmesi gereken nokta anahtar şifrelemesi çözümlenebilirken değerin şifrelemesi çözümlenememektedir. Ön tanımlı olarak Config/Services.php -> cookie ayarları içinde ön tanımlı olarak anahtarın şifrelenmesi için kullanılan encode ayarı md5 olarak ayarlıdır.
Parametreler
| string | $encodeName | Çerezin değerini tutacak anahtarın şifrelenmesi için kullanılır. Boş bırakılması halinde hiç bir şifreleme yapmaz. |
| string | $encodeValue | Çerezin verisini şifrelemek için kullanılır. Boş bırakılması halinde hiç bir şifreleme yapmaz. |
| return | this | |
Kullanımı
Cookie::encode('md5')->insert('sessionValue', 'Session Value');
Cookie::encode('sha1')->insert('sessionValue', 'Session Value');
Output::writeLine(Cookie::decode('md5')->select('sessionValue'));
Output::writeLine(Cookie::decode('sha1')->select('sessionValue'));
Session Value
Decode
Cookie::encode() ile şifrelenmiş çerez adını çözer. Şifreleme değer için tek yönlü olarak yapıldığı için çözümlenemez.
Parametreler
| string | $encodeName | Çerezin değerini tutacak anahtarın şifrelenmesi için kullanılır. Boş bırakılması halinde hiç bir şifreleme yapmaz. |
| return | this | |
Kullanımı
Cookie::encode('md5')->insert('value', 'Cookie Value');
Output::writeLine(Cookie::decode('md5')->select('value'));
İstenirse oturumun değeri de şifrelenebilir. Ancak bu kullanımda verinin çözümlenmesi mümkün değildir.
Cookie::encode('md5', 'sha1')->insert('value', 'Cookie Value');
Output::writeLine(Cookie::decode('md5')->select('value'));
SameSite ve güvenli çerezler
Çerezler PHP’nin seçenek dizisiyle oluşturulur. Varsayılan SameSite=Lax ve HttpOnly=true değeridir. secure açıkça ayarlanmadığında HTTPS isteklerinde otomatik etkinleşir.
// Config/Storage.php
"cookie" => [
"secure" => null,
"httpOnly" => true,
"sameSite" => "Lax"
]
Ödeme sağlayıcısının başka bir siteden POST ile döndüğü akışlarda SameSite=None gerekebilir. Bu değer yalnızca Secure çerezlerle kullanılmalıdır.