【问题标题】:Zend_Session::start() in bootstrap引导中的 Zend_Session::start()
【发布时间】:2010-10-28 03:45:41
【问题描述】:

你能告诉我如何在 zf app 的引导文件中包含 Zend_Session::start() 吗?

【问题讨论】:

    标签: zend-framework


    【解决方案1】:

    使用应用程序资源 - http://framework.zend.com/manual/en/zend.application.available-resources.html#zend.application.available-resources.session

    您需要做的就是在配置文件的“资源”部分中提供一个“会话”部分。

    我建议至少设置一个会话名称,例如

    resources.session.name = "MyAppName"
    

    或者如果使用 Zend_Config_Xml

    <resources>
        <session>
            <name>MyAppName</name>
        </session>
    </resources>    
    

    如果你想在你的 Bootstrap 类中做一些会话的东西,只要确保你首先引导会话资源来选择你的配置选项,例如

    protected function _initSessionNamespaces()
    {
        $this->bootstrap('session');
    
        // now create your namespace(s) and whatnot
    }
    

    【讨论】:

    • 这是否等同于在引导程序中添加 Zend_Session::start() ?,这样我就可以创建一个新的命名空间并对其进行迭代......(这里是新手)......什么在你的例子中?..是“MyAppName”的命名空间吗? , 如果我想要很多命名空间怎么办?
    • 不,它是会话名称(会话 cookie 的名称)。有关配置选项,请参见此处 - framework.zend.com/manual/en/…。当你实例化第一个 Zend_Session_Namespace 时,Zend_Session::start() 会自动调用,所以你真的不需要担心它。
    • 好的,让我验证一下,您的意思是,我将首先在我的应用程序的“application.ini”文件中添加 resources.session.name = "MyAppnName",然后在 Boostrap 中执行 _iniSession .php ?
    • 是的,虽然我会避免使用_initSession,但类似的东西会覆盖默认的“会话”应用程序资源引导(我认为)。
    • 您应该始终设置会话 cookie 名称以避免与同一域中的其他 PHP 应用程序发生冲突。执行此操作的最佳位置是在您的配置中
    猜你喜欢
    • 2011-07-24
    • 2010-11-28
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 2012-03-14
    • 2012-03-12
    • 1970-01-01
    • 2011-04-21
    相关资源
    最近更新 更多