Php Yii2:如何确保会话始终启动?

Php Yii2:如何确保会话始终启动?,php,session,yii2,session-state,Php,Session,Yii2,Session State,如何确保会话始终以Yii2启动?在yii1.0中,似乎有一个配置参数autoStart,但我在Yii2中没有看到 我是否需要手动调用Yii::$app->session->open()(或session\u start()),如果需要,在哪里可以对所有请求执行此操作 在撰写本文时,不会谈论它。每次调用Yii 2中处理会话数据的方法时,如果会话尚未启动,则会话将自动启动 如果需要,您可以随时直接调用Yii::$app->session->open()。每次调用处理Yii 2中会话数据的方法时,如果

如何确保会话始终以Yii2启动?在yii1.0中,似乎有一个配置参数
autoStart
,但我在Yii2中没有看到

我是否需要手动调用
Yii::$app->session->open()
(或
session\u start()
),如果需要,在哪里可以对所有请求执行此操作


在撰写本文时,不会谈论它。

每次调用Yii 2中处理会话数据的方法时,如果会话尚未启动,则会话将自动启动


如果需要,您可以随时直接调用
Yii::$app->session->open()

每次调用处理Yii 2中会话数据的方法时,如果会话尚未启动,则会话将自动启动


如果您愿意,您可以随时直接调用
Yii::$app->session->open()。我不想总是使用
Yii::$app->session
,只使用普通的$\u session['x'],因为它比较短。因此,我只需要知道如何确保会话始终自动启动。您可以将其放入一个公共类中,就像所有其他控制器都在扩展的公共控制器一样。我不建议访问普通$\会话-在这种情况下,此组件的所有功能都将丢失。如果这是一个问题,您可以在配置中将
Yii::$app->session
缩短为
Yii::$app->s
。从自定义基本控制器扩展所有控制器听起来像是一个混乱的解决方案-例如,对于没有意识到需要这样做的开发人员来说。-我看不出这个组件有任何实际的增值功能,相反,指南中提到了一个缺点。我知道我不需要定制存储。但如果我忽略了一些东西,我非常愿意接受启发……基本控制器是非常常见的解决方案。开发人员不需要这样做——这是一种强制启动您请求的会话的解决方案。该组件的主要特性是其构造—它允许使用迭代器和ArrayAccess的特性。还有自定义存储(即使您不需要)。使用该组件可以轻松设置和更改配置、准备变体、添加参数等。比如说,出于某种原因,您需要更改所有会话密钥名称,使其具有相同的前缀。有了组件,它非常简单——没有它,你必须在每一段代码中更改它。但Yii 2正是这样做的——它允许你使用会话数据,而无需担心打开会话。恐怕你正在勇敢地与你一开始创造的问题作斗争。这不是我要问的——导游很好地解释了这一部分。我不想总是使用
Yii::$app->session
,只使用普通的$\u session['x'],因为它比较短。因此,我只需要知道如何确保会话始终自动启动。您可以将其放入一个公共类中,就像所有其他控制器都在扩展的公共控制器一样。我不建议访问普通$\会话-在这种情况下,此组件的所有功能都将丢失。如果这是一个问题,您可以在配置中将
Yii::$app->session
缩短为
Yii::$app->s
。从自定义基本控制器扩展所有控制器听起来像是一个混乱的解决方案-例如,对于没有意识到需要这样做的开发人员来说。-我看不出这个组件有任何实际的增值功能,相反,指南中提到了一个缺点。我知道我不需要定制存储。但如果我忽略了一些东西,我非常愿意接受启发……基本控制器是非常常见的解决方案。开发人员不需要这样做——这是一种强制启动您请求的会话的解决方案。该组件的主要特性是其构造—它允许使用迭代器和ArrayAccess的特性。还有自定义存储(即使您不需要)。使用该组件可以轻松设置和更改配置、准备变体、添加参数等。比如说,出于某种原因,您需要更改所有会话密钥名称,使其具有相同的前缀。有了组件,它非常简单——没有它,你必须在每一段代码中更改它。但Yii 2正是这样做的——它允许你使用会话数据,而无需担心打开会话。恐怕你正在勇敢地与你最初创造的问题作斗争。