2015-01-10 2 views
0

프로젝트를 처음부터 다시 작성하는 중이고 그 과정에서 MVC를 배우려고했습니다. 이 경우 필자는 Phalcon을 선택했으며 튜토리얼을 내 프로젝트로 변환하는 기본 과정을 계속 수행하고 있습니다.데이터베이스에 연결하려고 시도 중

두 가지 "구성"설정이 있습니다. 먼저 데이터베이스 자격 증명이있는 구성 파일을 읽어야합니다 (제대로 작동 함). 내가 어떻게 실제로 데이터베이스에 연결하고 만약 내가 제대로 이해하고, 효과적으로 글로벌 클래스 인 $ 디> (에 추가 할 것을 일단

require_once('../fileconfig.php'); // Read config file 
$init = new Phalcon\Config\Adapter\Php("../fileconfig.php"); //Convert it to array 

는 그러나? 결국, 나는 당겨 할 나는 $ 디> 섹션을 제거하면 배열로 "설정 SELECT * FROM"및 응용 프로그램 구성을 위해 그것을 사용의 내용을 표시합니다.이 경우, 위해서 var_dump ($의 DBH)가

//Connect to database 
$di->set('db', function() use ($init) { 
    $dbh = new \Phalcon\Db\Adapter\Pdo\Mysql([ 
     "host" => $init->database->host, 
     "username" => $init->database->username, 
     "password" => $init->database->password, 
     "dbname" => $init->database->dbname 
    ]); 
    return $dbh; 
}); 
var_dump($dbh); //returns null 

"널 (null)"를 반환은 배열은 필요한 데이터를 반환하지만 여전히 데이터베이스에 연결하고 모델의 다른 함수에 대해 전역으로 사용할 수있는 방법을 찾는 데 도움이되지 않습니다.

$dbh = new \Phalcon\Db\Adapter\Pdo\Mysql([ 
     "host" => $init->database->host, 
     "username" => $init->database->username, 
     "password" => $init->database->password, 
     "dbname" => $init->database->dbname 
    ]); 

결과 :

object(Phalcon\Db\Adapter\Pdo\Mysql)[28] 
    protected '_descriptor' => 
    array (size=4) 
     'host' => string 'localhost' (length=9) 
     'username' => string 'testuser' (length=8) 
     'password' => string 'testpass' (length=8) 
     'dbname' => string 'testdb' (length=6) 

This question 내가 부탁 해요 무엇에 가까운 것 같다,하지만 실제 연결보다 오류 처리에 대한 자세한 내용을했고 내가 거기에 내 질문에 대한 답변을 보지 못했다.

답변

1

데이터베이스를 해결하려면 di. 당신은 당신이 그렇게하고 싶지 않아, 당신은

$di->getShared('db') 

로를 선언 그것을 파일을 해결하지만주의 할 수있다. 자신의 책임하에 파일을 분리하려고합니다. \ Phalcon \ MVC \ 컨트롤러를 상속하는 클래스의 내부

당신은 DI 및

그것을 액세스하는 모든 뉘앙스를 사용하는 이유를 위해

$this->db-> 

http://docs.phalconphp.com/en/latest/reference/di.html를 참조하십시오 사용할 수 있습니다

정말 다른 팔콘 프로젝트를 통해 모든 것이 어떻게 작동하는지 살펴 보는 것이 좋습니다. 프로젝트를 설정하는 방법에 여기 소스를 참조 해 봐주십시오

https://github.com/phalcon/invo

https://github.com/phalcon/vokuro

https://github.com/phalcon/forum

이들은 복잡성에 의해 순위가 결정됩니다 그렇게 invo 처음으로 시작하고

에 이동
+1

예제를 가져 주셔서 감사합니다. Phalcon 사이트의 튜토리얼은 좋았지 만 제공 한 예제는 훨씬 더 많은 도움을주었습니다. – Sage

관련 문제