我正在使用Symfony 1.2,並且我在切換上下文時遇到了一些問題。Symfony:切換上下文的問題
此代碼是工作的罰款:
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('account', 'prod', false);
$context = sfContext::createInstance($configuration, 'account-prod');
$userToLogin = PcUserPeer::retrieveByEmailAddress("[email protected]");
Auth::login($context->getUser(), $userToLogin, false, false);
echo "all done.";
在改變了一些點要求和我需要的「賬戶」的人之前使用「公共」的應用程序。
然後我更改爲:
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
// {{{ new code:
$configuration = ProjectConfiguration::getApplicationConfiguration('public', 'prod', false);
sfContext::createInstance($configuration);
// some code using the public app...
// }}}
$configuration = ProjectConfiguration::getApplicationConfiguration('account', 'prod', false);
$context = sfContext::createInstance($configuration, 'account-prod');
// {{{ new code:
sfContext::switchTo('account-prod');
// }}}
$userToLogin = PcUserPeer::retrieveByEmailAddress("[email protected]");
CustomAuth::login($context->getUser(), $userToLogin, false, false);
echo "all done.";
基本上我加入SWITCHTO呼叫。
變化後,代碼得到打破,該錯誤信息是這樣的:
PHP Fatal error: Call to a member function prepare() on a non-object in /var/www/html/myproj/symfony/storage/sfPDOSessionStorage.class.php on line 109
感謝您的幫助,
丹
我收到了同樣的錯誤,一些調查最終顯示阿斯頓是正確的,我的環境被打破了。既然這是在一段時間內工作,他的問題可能會有所不同。對於剛剛啓動並運行環境的用戶,請仔細檢查php是否可以訪問數據庫。在我的情況下,php.ini被打破,不訪問數據庫。 – sage 2011-07-15 16:50:36