2

Symfony2.1使用したいプロジェクトがsymfony 1.4あり、もちろんセッションとそれらの間でいくつかのデータを共有する必要がありますが、セッションがそれらの間で表示されない理由がわかりません。例えば:

symfony1フィルターには次のものがあります。

echo session_id().'<br>';
echo session_name();
$_SESSION['test_s1'] = '123';
var_dump($_SESSION);

結果は次のとおりです。

d30irfcdhjio27uiqd7a52blv7
symfony
array (size=6)
  'symfony/user/sfUser/lastRequest' => int 1356289903
  'symfony/user/sfUser/authenticated' => boolean false
  'symfony/user/sfUser/credentials' => 
    array (size=0)
      empty
  'symfony/user/sfUser/attributes' => 
    array (size=0)
      empty
  'symfony/user/sfUser/culture' => string 'en_US' (length=5)
  'test_s1' => string '123' (length=3)

だから、すべてがうまく見えます。

Symfony2コントローラーで私は持っています:

echo session_id() . '<br>';
echo session_name();
$_SESSION['test_s2'] = '123';
$session->set('test_s2_second', '321');
var_dump($_SESSION);
die;

そして結果:

d30irfcdhjio27uiqd7a52blv7
symfony
array (size=4)
  '_sf2_attributes' => &
    array (size=4)
      'razvan' => string 'test' (length=4)
      '_security_secured_area' => string 'C:74:"Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken":777:{a:3:{i:0;N;i:1;s:12:"secured_area";i:2;s:728:"a:4:{i:0;O:41:"Symfony\Component\Security\Core\User\User":7:{s:51:"?Symfony\Component\Security\Core\User\User?username";s:6:"user";s:51:"?Symfony\Component\Security\Core\User\User?password";s:8:"userpass";s:50:"?Symfony\Component\Security\Core\User\User?enabled";b:1;s:60:"?Symfony\Component\Security\Core\User\User?accountNonExpired";b:1;s:64:"?Symfony\Component\Security\Core'... (length=865)
      'search_form' => string '' (length=0)
      'test_s2_second' => string '321' (length=3)
  '_sf2_flashes' => &
    array (size=0)
      empty
  '_sf2_meta' => &
    array (size=3)
      'u' => int 1356289889
      'c' => int 1356287606
      'l' => string '0' (length=1)
  'test_s2' => string '123' (length=3)

したがって、session_idとsession_nameは同じですが、$ _ SESSIONを使用しても、Symfony2のsymfony1を介して設定したセッションのキー/値を確認できません。

背後にあるアーキテクチャはより複雑であり、私は主要な問題のみを明らかにしようとしました。

では、Symfony2.1からセッションにいくつかの変数を設定し、symfony 1.4ページに表示するにはどうすればよいですか?

(私はSymfony2.0で同じトリックを行い、そのトリックは機能しました)。

4

1 に答える 1

0

docsのトピックに関するクックブックの記事があります。これは、 memcache を使用してセッションを共有する方法についての theodo (彼らのプロファイルは symfony1 アプリケーションを Symfony2 に移植することです) によるブログ投稿であり、バンドル (TheodoEvolutionSessionBundle)もあります。また、レガシーアプリケーションを Symfony2 に移植する際のこの問題やその他の問題についてのビデオもあります。

于 2013-09-18T12:16:41.940 に答える