如何将Zend中的会话变量传递给本机PHP

时间:2016-08-15 08:28:31

标签: php zend-framework zend-framework2 session-variables

我想将Zend框架工作中的变量传递给同一服务器中的本机php文件。

我尝试了什么

func getQuery() -> FIRDatabaseQuery {
let myTopPostsQuery = (ref.child("posts"))

return myTopPostsQuery
}

override func viewDidLoad() {
 super.viewDidLoad()


self.ref = FIRDatabase.database().reference()

dataSource = FirebaseTableViewDataSource.init(query: getQuery(),prototypeReuseIdentifier: "Cellident", view: self.tableView)


dataSource?.populateCellWithBlock { (cell: UITableViewCell, obj: NSObject) -> Void in

    let customCell = cell as! CustomCellTableViewCell
    let snap = obj as! FIRDataSnapshot
    let childString = snap.value as! [String : AnyObject]

    customCell.textLabel.text = String(childString)} // << This is what I need to access in didSelectRowAtIndexPath

} 

   tableView.dataSource = dataSource
   tableView.delegate = self

}

然后我在我的php页面中尝试了这个

$auth = Zend_Auth::getInstance();
     if($auth->hasIdentity())
        {

          $user = $auth->getIdentity();
          $username33 = $this->escape(ucfirst($user->username));
          $_SESSION['thisisnotit']=$username33;
       }

显然这给了我一个错误。我理解Zend中会话的语法是

echo $notit = $_SESSION['thisisnotit'];

但我如何让它工作,以便我可以访问我的php文件中的变量

1 个答案:

答案 0 :(得分:1)

您的目标是获得身份验证服务。因此,对于您或您想要的任何服务,首先需要加载ZF2应用程序以获取您的身份验证服务。 遵循工作/测试代码来实现这一目标 -

require 'init_autoloader.php';
// Run the application!
$app=Zend\Mvc\Application::init(require 'config/application.config.php');
$authService=$app->getServiceManager()->get('AuthenticationService');
echo 'Session Data: <pre>'.print_r($authService->getIdentity(), true);

欢迎更有效率的方式。