mirror of
https://github.com/php/doc-tr.git
synced 2026-03-24 15:22:23 +01:00
400 lines
16 KiB
XML
400 lines
16 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 184f3f7bd45643cb80f828d0bb001991ec3a5fad Maintainer: nilgun Status: ready -->
|
||
<refentry xml:id="function.session-set-save-handler" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<refnamediv>
|
||
<refname>session_set_save_handler</refname>
|
||
<refpurpose>Kullanıcı seviyesi oturum saklama işlevlerini bildirir
|
||
</refpurpose>
|
||
</refnamediv>
|
||
|
||
<refsect1 role="description">
|
||
&reftitle.description;
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname>session_set_save_handler</methodname>
|
||
<methodparam><type>callable</type><parameter>open</parameter></methodparam>
|
||
<methodparam><type>callable</type><parameter>close</parameter></methodparam>
|
||
<methodparam><type>callable</type><parameter>read</parameter></methodparam>
|
||
<methodparam><type>callable</type><parameter>write</parameter></methodparam>
|
||
<methodparam><type>callable</type><parameter>destroy</parameter></methodparam>
|
||
<methodparam><type>callable</type><parameter>gc</parameter></methodparam>
|
||
<methodparam choice="opt"><type>callable</type><parameter>create_sid</parameter></methodparam>
|
||
<methodparam choice="opt"><type>callable</type><parameter>validate_sid</parameter></methodparam>
|
||
<methodparam choice="opt"><type>callable</type><parameter>update_timestamp</parameter></methodparam>
|
||
</methodsynopsis>
|
||
<para>
|
||
Aşağıdaki sözdizimi kullanılabilir:
|
||
</para>
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname>session_set_save_handler</methodname>
|
||
<methodparam><type>object</type><parameter>oturum_işleyici</parameter></methodparam>
|
||
<methodparam choice="opt"><type>bool</type><parameter>kapanışı_kaydet</parameter><initializer>&true;</initializer></methodparam>
|
||
</methodsynopsis>
|
||
<para>
|
||
<function>session_set_save_handler</function> işlevi, bir oturumla ilişkili
|
||
verileri almak ve saklamak için kullanılan kullanıcı seviyesi oturum
|
||
saklama işlevlerini bildirir. PHP oturumlarında başka kaynaklardan
|
||
sağlanmış bir saklama yöntemi (oturum verilerini bir yerel veritabanıda
|
||
saklamak gibi) kullanılacaksa bu işlev çok işe yarar.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="parameters">
|
||
&reftitle.parameters;
|
||
<para>
|
||
Bu işlevin iki sözdizimi vardır. İkincisinin bağımsız değişkenleri:
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>oturum_işleyici</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Oturum işleyici olarak kaydedilmek üzere,
|
||
<interfacename>SessionHandlerInterface</interfacename> ve seçimlik
|
||
olarak <interfacename>SessionIdInterface</interfacename> ve/veya
|
||
<interfacename>SessionUpdateTimestampHandlerInterface</interfacename>
|
||
gerçekleyen <classname>SessionHandler</classname> gibi bir sınıfın
|
||
örneği.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>kapanışı_kaydet</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
<function>session_write_close</function> işlevi
|
||
<function>register_shutdown_function</function> işlevi
|
||
olarak kaydedilir.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
Birincisinin bağımsız değişkenleri:
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>open</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Bir geriçağırım işlevi olup sözdizimi şöyle olabilir:
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname><replaceable>open</replaceable></methodname>
|
||
<methodparam><type>string</type><parameter>kayıtYolu</parameter></methodparam>
|
||
<methodparam><type>string</type><parameter>oturumAdı</parameter></methodparam>
|
||
</methodsynopsis>
|
||
</para>
|
||
<para>
|
||
Bu işlev, sınıflardaki kurucular gibi çalışır ve oturum açıldığında
|
||
çalıştırılır. Açma işlevinin iki bağımsız değişken kabul edeceği varsayılır.
|
||
İlkinde dosyaların kaydedileceği yerin yolu, ikincisinde oturum ismi
|
||
verilir. Oturum başlatıldığında otomatik olarak veya elle
|
||
<function>session_start</function> çağırarak çalıştırılan ilk
|
||
geriçağırım işlevidir. Başarı durumunda &true; yoksa &false; döner.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>close</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Bir geriçağırım işlevi olup sözdizimi şöyle olabilir:
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname><replaceable>close</replaceable></methodname>
|
||
<void/>
|
||
</methodsynopsis>
|
||
</para>
|
||
<para>
|
||
Bu işlev, sınıflardaki yıkıcılar gibidir ve write geriçağırım işlevinden
|
||
sonra çalıştırılır. Ayrıca, <function>session_write_close</function>
|
||
çağrıldığında da çalıştırılır.
|
||
Başarı durumunda &true; yoksa &false; döner.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>read</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Bir geriçağırım işlevi olup sözdizimi şöyle olabilir:
|
||
<methodsynopsis>
|
||
<type>string</type><methodname><replaceable>read</replaceable></methodname>
|
||
<methodparam><type>string</type><parameter>oturum_kimliği</parameter></methodparam>
|
||
</methodsynopsis>
|
||
</para>
|
||
<para>
|
||
<parameter>read</parameter> geriçağırımı daima dizgeleştirilmiş bir
|
||
oturum dizgesi veya hiç veri okunmamışsa boş dizge döndürmelidir.
|
||
</para>
|
||
<para>
|
||
Bu geriçağırım, PHP tarafından dahili olarak oturum başlarken veya
|
||
<function>session_start</function> çağrısıyla çalıştırılır. Bu
|
||
geriçağırımı çağırmadan önce PHP <parameter>open</parameter>
|
||
geriçağırımını çalıştırır.
|
||
</para>
|
||
<para>
|
||
Bu geriçağırımdam dönen dizgeleştirilmiş biçim, değiştirilmeden
|
||
<parameter>write</parameter> geriçağırımına aktarılabilecek biçimde
|
||
olmalıdır. Dönen değer PHP tarafından otomatik olarak nesneleştirilerek
|
||
<varname>$_SESSION</varname> dizisini doldurmakta kullanılır. Veri,
|
||
<function>serialize</function> işlevindekine benzese de <link
|
||
linkend="ini.session.serialize-handler">session.serialize_handler</link>
|
||
ini değişkeninde belirtilen biçimde olacağı unutulmamalıdır.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>write</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Bir geriçağırım işlevi olup sözdizimi şöyle olabilir:
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname><replaceable>write</replaceable></methodname>
|
||
<methodparam><type>string</type><parameter>oturum_kimliği</parameter></methodparam>
|
||
<methodparam><type>string</type><parameter>veri</parameter></methodparam>
|
||
</methodsynopsis>
|
||
</para>
|
||
<para>
|
||
<parameter>write</parameter> geriçağırımı oturumun kaydedilip
|
||
kapatılması gerekince çağrılır. Geriçağırım geçerli oturum kimliğini
|
||
ve <varname>$_SESSION</varname> dizisinin dizgeleştirilmiş sürümünü
|
||
bağımsız değişken olarak alır. PHP tarafından dahili olarak kullanılan
|
||
dizgeleştirme yöntemi, <link
|
||
linkend="ini.session.serialize-handler">session.serialize_handler</link>
|
||
ini değişkeninde belirtilmiştir.
|
||
</para>
|
||
<para>
|
||
Bu geriçağırıma aktarılan dizgeleştirilmiş oturum saklama verisi,
|
||
kimliği aktarılan oturumla ilgili olmalıdır. Bu veri alındığında
|
||
<parameter>read</parameter> geriçağırımının döndürdüğü değer,
|
||
<parameter>write</parameter> geriçağırımına değiştirilmeden aktarılacak
|
||
biçimde olmalıdır.
|
||
</para>
|
||
<para>
|
||
Bu geriçağırım PHP kapanırken veya doğrudan
|
||
<function>session_write_close</function> çağrıldığında çalıştırılır.
|
||
Bu işlev çalıştırıldıktan sonra PHP dahili olarak
|
||
<parameter>close</parameter> geriçağırımını çalıştırır.
|
||
<note>
|
||
<para>
|
||
Bu işlev çıktı akımı kapanana kadar çalıştırılmaz. Bu bakımdan bu
|
||
işlevdeki hata ayıklama deyimlerinin çıktıları tarayıcıda hiçbir
|
||
zaman görünmez. Eğer hata ayıklama çıktısı gerekliyse, bu çıktının
|
||
bir dosyaya yazılması önerilir.
|
||
</para>
|
||
</note>
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>destroy</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Bir geriçağırım işlevi olup sözdizimi şöyle olabilir:
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname><replaceable>destroy</replaceable></methodname>
|
||
<methodparam><type>string</type><parameter>oturum_kimliği</parameter></methodparam>
|
||
</methodsynopsis>
|
||
</para>
|
||
<para>
|
||
Bu işlev, oturum kimliğini tek bağımsız değişken olarak alır.
|
||
<function>session_regenerate_id</function> işlevi eski_oturumu_sil
|
||
bağımsız değişkenine &true; atanarak çağrıldığında veya
|
||
<function>session_destroy</function> ile oturum yok edildiğinde bu
|
||
geriçağırım çalıştırılır. Başarı durumunda &true; yoksa &false; döner.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>gc</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Bir geriçağırım işlevi olup sözdizimi şöyle olabilir:
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname><replaceable>gc</replaceable></methodname>
|
||
<methodparam><type>int</type><parameter>ömür</parameter></methodparam>
|
||
</methodsynopsis>
|
||
</para>
|
||
<para>
|
||
Çöp toplayıcı geriçağırım işlevi olup, eski oturum verilerini
|
||
temizlemek için dahili olarak PHP tarafından düzenli aralıklarla
|
||
çağrılır. Sıklık
|
||
<link linkend="ini.session.gc-probability">session.gc_probability</link>
|
||
ve <link linkend="ini.session.gc-divisor">session.gc_divisor</link>
|
||
yönergeleri ile ayarlanır. İşleve aktarılan ömür değeri <link
|
||
linkend="ini.session.gc-maxlifetime">session.gc_maxlifetime</link>
|
||
yönergesinin çalışma zamanı değerini değiştirir.
|
||
Başarı durumunda &true; yoksa &false; döner.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>create_sid</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Bir geriçağırım işlevi olup sözdizimi şöyle olabilir:
|
||
<methodsynopsis>
|
||
<type>string</type><methodname><replaceable>create_sid</replaceable></methodname>
|
||
<void/>
|
||
</methodsynopsis>
|
||
</para>
|
||
<para>
|
||
Bu geriçağırım yeni bir oturum kimliği gerektiğinde çalıştırılır.
|
||
Bağımsız değişkensizdir ve dönüş değeri dizge olarak geçerli bir oturum kimliği
|
||
olmalıdır.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>validate_sid</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Bir geriçağırım işlevi olup sözdizimi şöyle olabilir:
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname><replaceable>validate_sid</replaceable></methodname>
|
||
<methodparam><type>string</type><parameter>anahtar</parameter></methodparam>
|
||
</methodsynopsis>
|
||
</para>
|
||
<para>
|
||
Bir oturum başlatılıp bir oturum kimliği edinildiğinde <link
|
||
linkend="ini.session.use-strict-mode">session.use_strict_mode</link>
|
||
yönergesi de etkinse bu geriçağırım çalıştırılır.
|
||
<parameter>anahtar</parameter> doğrulanacak oturum kimliğidir. Bu
|
||
kimliğe sahip bir oturum varsa bu oturum kimliği geçerlidir.
|
||
Başarı durumunda &true; yoksa &false; döner.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>update_timestamp</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Bir geriçağırım işlevi olup sözdizimi şöyle olabilir:
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname><replaceable>update_timestamp</replaceable></methodname>
|
||
<methodparam><type>string</type><parameter>anahtar</parameter></methodparam>
|
||
<methodparam><type>string</type><parameter>değer</parameter></methodparam>
|
||
</methodsynopsis>
|
||
</para>
|
||
<para>
|
||
Bir oturum güncellendiğinde bu geriçağırım çalıştırılır.
|
||
<parameter>anahtar</parameter> oturumun kimliği,
|
||
<parameter>değer</parameter> ise oturum verisidir.
|
||
Başarı durumunda &true; yoksa &false; döner.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="returnvalues">
|
||
&reftitle.returnvalues;
|
||
<para>
|
||
&return.success;
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="examples">
|
||
&reftitle.examples;
|
||
<para>
|
||
<example>
|
||
<title>- Özel oturum işleyici</title>
|
||
<para>
|
||
<classname>SessionHandlerInterface</classname> sayfasında kodun tamamı
|
||
vardır. Burada sadece çağrılan kısım gösterilmiştir.
|
||
</para>
|
||
<para>
|
||
Burada <function>session_set_save_handler</function> işlevinin NYP
|
||
sözdizimi kullanılmakta ve kapanışı_kaydet bağımsız değişkeni ile kapanış
|
||
işlevi kayıt altına alınmaktadır. Nesneleri oturum kayıt işleyicisi
|
||
olarak kayıt altına alma işlemi genel olarak böyledir ve böyle
|
||
yapılması önerilir.
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
class MySessionHandler implements SessionHandlerInterface
|
||
{
|
||
// arayüzlerin gerçeklenimi burada
|
||
}
|
||
|
||
$handler = new MySessionHandler();
|
||
session_set_save_handler($handler, true);
|
||
session_start();
|
||
|
||
// $_SESSION dizisinden değerleri anahtarlarına göre
|
||
// elde etmek ve atamak için kodlar burada.
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="notes">
|
||
&reftitle.notes;
|
||
<warning>
|
||
<para>
|
||
<parameter>write</parameter> ve <parameter>close</parameter> eylemcileri
|
||
nesne yokedildikten sonra çağrılmaktadır. Bu bakımdan nesneler ve istisna
|
||
yavrulama kullanılamaz. İstisnalar da yakalanamaz, ne yakalanır ne de
|
||
herhangi bir istisna izi görüntülenir ve çalışma beklenmedik bir şekilde
|
||
durur. Ancak nesne yıkıcılar oturumlarda kullanılabilir.
|
||
</para>
|
||
<para>
|
||
Bu yumurta/tavuk sorununu çözümlemek için bir yıkıcıdan
|
||
<function>session_write_close</function> çağrısı yapmak mümkündür fakat
|
||
en güvenilir yol, kapanış işlevini yukarıda açıklandığı gibi kayıt altına
|
||
almaktır.
|
||
</para>
|
||
</warning>
|
||
<warning>
|
||
<para>
|
||
Eğer oturum, betiğin sonlanmasıyla kapanmışsa bazı SAPI'lerde, geçerli
|
||
çalışma dizini değiştirilir. Böyle durumlarda oturumu önceden
|
||
<function>session_write_close</function> ile kapatmak mümkündür.
|
||
</para>
|
||
</warning>
|
||
</refsect1>
|
||
|
||
<refsect1 role="seealso">
|
||
&reftitle.seealso;
|
||
<para>
|
||
<simplelist>
|
||
<member>
|
||
<link linkend="ini.session.save-handler">session.save_handler</link>
|
||
yapılandırma yönergesi
|
||
</member>
|
||
<member>
|
||
<link linkend="ini.session.serialize-handler">session.serialize_handler</link>
|
||
yapılandırma yönergesi.
|
||
</member>
|
||
<member>The <function>register_shutdown_function</function></member>
|
||
<member>The <function>session_register_shutdown</function></member>
|
||
<member>
|
||
Eksiksiz bir yordamsal gönderim gerçeklenimi için bkz: <link
|
||
xlink:href="&url.session-save-handler;">save_handler.inc</link>
|
||
</member>
|
||
</simplelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
</refentry>
|
||
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|