2014-04-15 2 views
1

안녕하세요.PHP로 새 클래스를 인스턴스화 할 때 객체 보내기

Phalcon 프레임 워크의 데이터베이스에서 작업을 수행하는 PDO (PostgreSQL) 개체가 있는데 문제는 내가 찾은 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 파일에서 사용할 수 없습니다, 그래서 어떻게 새로운 클래스의 IT에 액세스 할 수 있습니까?

감사합니다.

+1

'기능 __construct (Database_Name을 $의 데시벨) {$ this->을 dB = $ dB; }'? 'private $ db;와? '$ this-> db-> do_function()'으로 접근을 허용합니까? ** Database_Name **은 데이터베이스 클래스 이름 일 것입니다. – Darren

답변

1

개인 변수를 선언하고 Session.php의 클래스에 생성자를 추가

private $database; 

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

당신이 당신의 세션 객체 인스턴스화가 있으면, 당신은 수행하여 세션 객체의 메소드에서 데이터베이스 개체에 액세스 할 수 있습니다

$this->database->do_something(); 

나는 생성자 타입 힌트를 추가 제안하지만 난 $ 데이터베이스가 내가 그것을 떨어져 떠하도록되어 어떤 물체 방식을 모르는 때문이다. 현재 암시 유형에 대한 자세한 내용을보실 수 있습니다 :

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

+0

좋은 답변, 내 의견 및 좋은 설명을 확대 해 주셔서 감사합니다. – Darren

관련 문제