我在\ web文件夹中创建了一个php文件(这意味着在应用程序之外吗?),我在应用程序内的一个会话中设置了一个变量(在一个控制器动作中),但是我无法在应用程序(在外部php文件中)。我总是空谈。
这是我设置会话的控制器动作
*/
public function questionnaireConfigAction($id,Request $request)
{
$em=$this->getDoctrine()->getManager();
$questionTypes=$em->getRepository(QuestionType::class)->findAll();
$questionnaire = $em->getRepository(Questionnaire::class)->find($id);
$session = new Session();
$session->set('fileContext',['questionTypes'=>$questionTypes,'questionnaire'=>$questionnaire]);
return $this->render('questionnaires/questionnaireConfig/config.html.twig',
['questionTypes'=>$questionTypes,
'questionnaire'=>$questionnaire]);
}
这是外部文件
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Response;
use AppBundle\twigExtentions\filesLoader;
use Symfony\Component\HttpFoundation\Session\Storage\PhpBridgeSessionStorage;
$loader = require __DIR__.'/../app/autoload.php';
$request = Request::createFromGlobals();
$session = new Session();
$session->start();
dump($session->get('fileContext')); /*get nothing here */
答案 0 :(得分:0)
[解决] 我找到了解决方案。通过使用PhpBridgeSessionStorage类
ini_set('session.save_handler', 'files');
ini_set('session.save_path', 'path/to/save file');
session_start();
$session = new Session(new PhpBridgeSessionStorage());
$session->start();
dump($session->get('fileContext'));