Конфигурация каталога, где сохраняются файлы сессии

Конфигурация каталога, где сохраняются файлы сессии

По умолчанию, Symfony сохраняет метаданные сессии в файловой системе. Если вы хотите контролировать этот пусть, обновите ключ конфигурации framework.session.save_path:

  • YAML
    1
    2
    3
    4
    5
    # app/config/config.yml
    framework:
        session:
            handler_id: session.handler.native_file
            save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    <!-- app/config/config.xml -->
    <?xml version="1.0" encoding="UTF-8" ?>
    <container xmlns="http://symfony.com/schema/dic/services"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:framework="http://symfony.com/schema/dic/symfony"
        xsi:schemaLocation="http://symfony.com/schema/dic/services
            http://symfony.com/schema/dic/services/services-1.0.xsd
            http://symfony.com/schema/dic/symfony
            http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
    
        <framework:config>
            <framework:session handler-id="session.handler.native_file" save-path="%kernel.project_dir%/var/sessions/%kernel.environment%" />
        </framework:config>
    </container>
    
  • PHP
    1
    2
    3
    4
    5
    6
    7
    // app/config/config.php
    $container->loadFromExtension('framework', array(
        'session' => array(
            'handler_id' => 'session.handler.native_file',
            'save_path' => '%kernel.project_dir%/var/sessions/%kernel.environment%'
        ),
    ));
    

Хранение сессий в других местах (например, БД)

Конечно же, вы можете сохранять данные ваших сессий где угодно, используя опцию handler_id. Смотрите Configuring Sessions and Save Handlers, чтобы прочитать дискуссию об обработчиках сохранения сессий. Также есть статью о сохранении сессий в реляционной БД или базе данных NoSQL.

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.