2011-01-16 1 views
1

, 당신은 Symfony 2/Doctrine - 항상 사용할 수있는 DB 연결? 심포니 2 설명서에 accoring에

$conn = $this->get('database_connection'); 
$users = $conn->fetchAll('SELECT * FROM users'); 

내가 심포니 2 완전 초보 해요 ... 데이터베이스에 연결하고 쿼리를 실행하기 위해 다음과 같은 PHP 코드를 사용해야하지만 난 경험하고 OOP. 모든 번들에서 액세스 할 수있는 전역 적으로 사용 가능한 $conn 변수를 가질 수 있는지 궁금합니다. $conn 변수에는 $this->get('database_connection') 값이 포함되어 있으므로 새 쿼리를 만들 때마다 $conn = $this->get('database_connection');을 다시 입력 할 필요가 없습니다.

감사합니다.

답변

3

전역 변수는 대부분 OOP에서 원하는 것이 아닙니다. 그들은 여러 변수를 다루는 방법에 관해서는 혼란 스러울뿐만 아니라 지역 변수에 의해 감추어 질 수도 있습니다. 나를 위해,

$anything = $this->get('what.the.hell.why.arent.those.identifiers.shorter'); 

처럼 문 작업은 그래서 실제 식별자로 얻을 호출 방법을 제공 프로젝트 당 심포니 \ 번들 \ FrameworkBundle \ 컨트롤러 \ 컨트롤러 중 하나 개 서브 클래스를 만드는 결국뿐만 아니라 성가신 . 귀하의 경우에는 방법을 만들 것입니다

public function getDatabaseConnection() 
{ 
    return $this->get('database_connection'); 
} 

일반적으로 - 왜 DB 연결 관리를 위해 Doctrine을 사용하지 않으시겠습니까? 대부분의 쿼리는 ORM에 의해 수행 될 수 있으며 이는 데이터베이스에 대한 실제 객체 지향 인터페이스로 작업하는 방법입니다. 그것에 대해 생각해보십시오, 나는 또한 Symfony2/Doctrine을 며칠 동안 가지고 놀고 있습니다. 정말 기분이 좋습니다. 처음에는 설정과 같이 보일지 모르지만 기본 설정을 완료하면 개발이 정말 빨라졌습니다! :)

+0

고마워요! 나는 어느 방법이 가장 잘 작동하는지 두 가지 방법으로 시험해 볼 것이다. – Kieran