在PHP中实例化新类时发送对象

时间:2014-04-15 01:54:24

标签: php oauth-2.0 phalcon

美好的一天。

我有一个PDO(PostgreSQL)对象在我的Phalcon框架中执行数据库中的操作,问题是我实现了一些我发现的Oauth服务器类,并且需要将此对象传递给Oauth服务器,因此它可以对数据库执行操作...

这就是创建类的方法:

数据库对象:

$di['db']

以及我如何将其发送到课程中:

// Initiate the auth server with the models
$server = new League\OAuth2\Server\Resource(
    new League\OAuth2\Server\Storage\PDO\Session($di['db'])
);

Session.php文件:

<?php

namespace League\OAuth2\Server\Storage\PDO;

use League\OAuth2\Server\Storage\SessionInterface;

class Session implements SessionInterface
{

public functions that will need to use the database object...

但是Session.php文件中没有该对象,那么如何从新类中访问它?

感谢。

1 个答案:

答案 0 :(得分:1)

声明一个私有变量并在Session.php

中向该类添加一个构造函数
private $database;

public function __construct($database) {
    $this->database = $database;    
}

实例化Session对象后,您可以通过

访问Session对象方法中的数据库对象
$this->database->do_something();

我建议在构造函数中添加类型提示,但由于我不知道$ database应该是什么对象类型,所以我将其关闭。您可以在此处阅读有关类型提示的更多信息:

http://www.php.net/manual/en/language.oop5.typehinting.php