<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect2 id="zend.application.available-resources.session">
    <title>Zend_Application_Resource_Session</title>

    <para>
        <classname>Zend_Application_Resource_Session</classname> est utilisé pour configurer
        <classname>Zend_Session</classname> et éventuellement un support de sauvegarde sessions
        (SaveHandler).
    </para>

    <para>
        Pour créer un support de sauvegarde session, passez la clé <property>saveHandler</property>
        (non sensible à la casse) à la ressource. La valeur d'une telle option peut être&#160;:
    </para>

    <itemizedlist>
        <listitem><para>
            <type>String</type>&#160;: cette chaîne indique le nom d'une classe implémentant
            <classname>Zend_Session_SaveHandler_Interface</classname>.
        </para></listitem>

        <listitem><para>
            <type>Array</type>&#160;: avec les clés "class" et optionnellement
            "options", indiquant une classe à instancier (implémentant
            <classname>Zend_Session_SaveHandler_Interface</classname>) et un tableau d'options
            à passer à son constructeur.
        </para></listitem>

        <listitem><para>
            <classname>Zend_Session_SaveHandler_Interface</classname>&#160;: un objet
            implémentant cette interface.
        </para></listitem>
    </itemizedlist>

    <para>
        Toute autre option non reconnue sera alors passée à
        <methodname>Zend_Session::setOptions()</methodname> pour configurer
        <classname>Zend_Session</classname>.
    </para>

    <example id="zend.application.available-resources.session.configExample">
        <title>Exemple de ressource session</title>

        <para>
            Voici un fichier <acronym>INI</acronym> permettant de configurer une session via la
            ressource. Il affecte des options à <classname>Zend_Session</classname> et configure
            une instance de <classname>Zend_Session_SaveHandler_DbTable</classname>.
        </para>

        <programlisting language="ini"><![CDATA[
resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "session"
resources.session.saveHandler.options.primary[].session_id = "session_id"
resources.session.saveHandler.options.primary[].save_path = "save_path"
resources.session.saveHandler.options.primary[].name = "name"
resources.session.saveHandler.options.primaryAssignment[].sessionId = "sessionId"
resources.session.saveHandler.options.primaryAssignment[].sessionSavePath = "sessionSavePath"
resources.session.saveHandler.options.primaryAssignment[].sessionName = "sessionName"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "session_data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"
]]></programlisting>
    </example>

    <note>
        <title>Configurez votre base de données avant&#160;!</title>

        <para>
            Si vous configurez le gestionnaire
            <classname>Zend_Session_SaveHandler_DbTable</classname>, vous devez configurer
            votre base de données avant. Pour cela, servez vous de la ressource <link
                linkend="zend.application.available-resources.db">Db</link> et assurez vous
            que la clé "<property>resources.db</property>" apparaît bien avant la clé
            "<property>resources.session</property>". Vous pouvez aussi utiliser votre propre
            ressource qui initialise la base de données et affecte l'adaptateur
            <classname>Zend_Db_Table</classname> par défaut.
        </para>
    </note>
</sect2>
