2014-04-04 3 views
1

심포니를 처음 접했습니다. symfony cmf를 더 많이 사용합니다. 프로젝트 아이디어가 있고 시작하고 싶지만, 필자는 문서를 읽는 동안 점점 더 혼란스러워집니다.심포니 CMF 혼동

빌드해야 할 것은 트리 구조 경로와 해당 경로에 대한 다국어 지원과 같은 CMS입니다. 그러나 나는이 새로운 PHPCR과 혼동 스럽다. 나에게 새로운 것이고, 내 서버에 자바를 설치할 필요가 없다. CMF를 사용할 수 없다는 의미인가?

내가 교리 ORM 솔루션의 읽을 수 있지만 예를 들어, 명확한 문서를 찾을 수 없습니다 2 개 개념은 또한 거기, 내가 알아낼 수 없습니다 :

  • 교리/phpcr-ODM
  • 의 잭카/jackalope-doctrine-dbal

그들은 서로 다르거나 어쩌면 서로 보완합니까?

누군가가 나에게 PHPCR, PHPCR-ODM, 교리 - dbal을 설명 할 수 있고 CMF와 MySQL 데이터베이스 만 사용하여 CMS를 만들 수 있다고 말하면 (DB에서로드 경로가 가능하다는 것을 알았습니다) 어떻게이 문제에 접근해야합니까?

답변

1

PHPCR 스토리는 다른 DB 스토리지 시스템에서 알고있는 것과는 조금 다릅니다. 혼란을 야기 할 수 있으므로 그 뒤에있는 개념을 설명해 드리겠습니다.

기본 흐름도

이로 표현 될 수있다 : basic flow chart

응용 프로그램 계층은 당신이 쓴 PHP 코드입니다. PHPCR에 어떤 데이터를 넣으려면, 새로운 노드 (MySQL DB의 행과 같은)를 생성하고 그것을 PHPCR 레이어에 삽입한다. 이 계층은 DB에 묶여있는 자칼 로프 연결과 통신합니다.

Doctrine PHPCR-ODM을 사용하는 경우 애플리케이션 레이어와 PHPCR 레이어 사이에 새로운 레이어가 있습니다. 당신은 PHPCR을 직접 사용하지 않을 것이며,이 Doctrine 레이어를 통해서만 사용할 것입니다.

Jackalope 레이어는 서로 다른 DB 레이어에 대해 여러 가지 다른 방법을 가질 수 있습니다. 지금까지 Jackalope 레이어에는 Jackrabbit 또는 Doctrine DBAL의 두 가지 옵션이 있습니다.
Jackrabbit 옵션을 사용하면 Jackalope를 통해 Java Jackrabbit DB 시스템과 통신 할 수 있습니다. 이것은 가장 강력하고 기능이 풍부하고 가장 적절한 옵션입니다.
Doctrine DBAL을 사용할 수도 있습니다. 이 Jackalope 어댑터는 Doctrine DBAL 레이어를 사용하여 DB와 통신합니다. Doctrine DBAL은 대부분의 관계형 데이터베이스 (SQLite, MySQL, Oracle 등)에서 작동 할 수 있습니다.

Symfony CMF의 거의 모든 예제는 Doctrine DBAL 버전을 사용합니다. PHPCR 세계에 처음 들어가면 설정하기가 더 쉽습니다. 예를 들어 documentation, sandbox 또는 standard edition을 살펴보십시오.

+0

Doctrine DBAL (jackalope-doctrine-dbal을 올바르게 이해했다면)을 사용하면 PHPCR, PHPCR-ODM 또는 다른 것이 필요하지 않으며 php 및 mysql 만 사용하여 내 사이트를 만들 수 있습니다 백그라운드에서 실행중인 자바 무엇이 이렇게 적? 두 번째 질문은 Symfony cmf로 구축 된 시스템의 동영상 (https://www.youtube.com/watch?v=i5Y5QPcYWHw)을보고 파일 시스템에 문서를 라우트하므로 Doctrine DBAL을 사용하여이 문제를 피할 수 있습니다. , DB 안에 내 경로를 저장 하시겠습니까? –

+1

PHPCR은 트리 구조화 된 데이터와 상호 작용하는 방법을 정의하는 * 인터페이스 * 집합입니다. phpcr-odm은 그 위의 객체 매퍼이므로 원시 데이터 대신 도메인 객체로 작업 할 수 있습니다.cmf는 객체와 함께 작동하고 phpcr-odm에 대한 바인딩을 제공합니다. 당신은 교리 오브이나 다른 객체 매퍼를위한 당신 만의 객체를 작성할 수 있습니다. 그러나 phpcr 트리 철학은 실제로 CMS 시스템과 잘 어울립니다. phpcr은 인터페이스 일 뿐이므로 phpcr을 구현해야합니다. wouter가 말했듯이, 당신은 자바 데이터베이스와 함께 작동하는 jackalope-doctrine-dbal을 선택할 수 있습니다. 또는 java와 대화하는 jackalope-jackrabbit – dbu