2011-07-04 5 views
2

최근 MVC 기반 프레임 워크에서 작업하고 있습니다. 프레임 워크는 현재 절반으로 끝났으며 이제는 사용해야하는 데이터베이스 추상화 계층을 살펴 보겠습니다.내 프레임 워크에 적합한 데이터베이스 시스템 선택

대부분의 프로젝트에서 필자는 보통 PDO를 상위 클래스로 사용하고 통합 헬퍼 기능이있는 사용자 지정 구조를 사용합니다.

하지만 나는 시대에 머물러야합니다. 요즘은 DBAL에서 큰 것으로 생각되지만 사용하지는 않았지만 ORM의 개념을 이해하고 있습니다. 할 것. 당신이 더 DBAL이없는 그것이 시스템의 유형을 볼 수 있도록

내 프레임 워크의 소스는 여기에서 확인할 수 있습니다 무엇 때문에 어느 순간에 바로 모델 로더 등

내가 아는 것을 고수해야하며, PDO를 사용하여 몇 가지 추가 기능을 갖추어야 좋은 측정을 할 수 있습니다.

또는 ORM 기반 DBAL을 사용하여 알려지지 않은 부분을 조사해야합니다. 사용법에 대해 몇 가지 질문이 있으니 제안해야합니다.

먼저 '가장 좋은 ORM'과 관련하여 많은 질문과 답변이 StackOverflow에 있지만 다음을 염두에두고 무엇을 제안하겠습니까?

  • 가볍고 잘
  • 이 모델과 통합 할 수 있어야 테스트
  • 의 다양한 선택을 가지고 운전
  • 이는 자신의 범위 또는 적어도 내가 가진

공급 업체 이름의 접두사이다 RedBeans를 살펴 봤는데 개념이 마음에 들지만, 모델 밖에서는 도달 할 수없는 많은 기능이 있습니다.

당신의 조언은 무엇입니까?

답변

0

합니다.

좋은 것을 사용하면 클래스를 확장 할 수 있으므로 자신의 필요에 따라 ORM을 훨씬 더 유창하게 사용할 수 있습니다. 어떻게 든 PDO를 사용했지만 ORM 수준에서했던 것처럼.

다른 Symfony 구성 요소 또는 자신의 클래스와 쉽게 통합되는 Doctrine을 살펴 보시기 바랍니다. This plog post shows how it works. Doctrine은 아마도 PHP 세계에서 찾을 수있는 가장 진보 된 ORM 및 DBAL 일 것입니다.

+1

Doctrine과 관련된 문제는 네임 스페이스를 사용한다는 사실입니다. 많은 언어에서 네임 스페이스가 중요하지만 개인적으로 PHP는 거의 준비가되어 있지 않습니다. 또 다른 요점은 내 프레임 워크가 네임 스페이스가없는 것입니다. – RobertPitt

+0

@RoberPitt : PHP는 네임 스페이스를 사용합니다. 지정하지 않으면 전역 경로입니다.레거시 이유로 구형 PHP 버전을 지원할 필요가없는 한 네임 스페이스를 명시 적으로 지정하는 PHP 코드를 사용해서는 안됩니다. 그렇지 않으면 Doctrine Version 1.2는 전역 네임 스페이스에있는 PHP 5.2.3+ 용입니다. – hakre