symfony中session存入到memcache中都使用方法總結
1.大多數軟體都使用的方法
修改:php.ini:
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
2.使用symfony2這麼操作
Symfony2,嘗試了這一點,你會發現你的應用程式仍然使用檔案系統儲存的會話。
原因:symfony會預設使用它們自己預設的配置
3.正確解決方法
1.第一步是新增我們的parameters.yml memcache伺服器設定:
session_host: 127.0.0.1
session_port: 11211
session_prefix: sess_
session_lifetime: 86400
2.接下來,我們需要配置我們的服務,使用這些設定,使我們能夠告訴使用我們所需的處理程式(使用我的捆綁服務配置)的框架:
<?xml version="1.0" ?>
<container xmlns="symfony.com/schema/dic/services"
xmlns:xsi="w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="symfony.com/schema/dic/services symfony.com/schema/dic/service..">
<services>
<service id="session.memcache" class="\Memcache">
<call method="addServer">
<argument>%session_host%</argument>
<argument>%session_port%</argument>
</call>
</service>
<service id="session.handler.memcache" class="\Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcacheSessionHandler">
<argument type="service" id="session.memcache">
<argument type="collection">
<argument>%session_prefix%</argument>
<argument>%session_lifetime%</argument>
</argument>
</service>
</services>
</container>
3.現在所有剩下要做的就是告訴框架在你的應用程式的配置使用我們的新的處理程式(程式/配置/ config_prod。YML):
framework:
session:
handler_id: session.handler.memcache