2014-05-22 5 views
0

일부 데이터를 플러그인에 가져 오려면 REST 서비스를 사용해야합니다. 이를 위해, 나는 다음과 같은 명령을 typoscript에 정상적인 백엔드 인터페이스를 오버라이드 (override) 한 :TYPO3 4.5 : 쿼리에서 제약 조건을 읽는 방법

objects.Tx_Extbase_Persistence_Storage_BackendInterface.className = Tx_extensionname_Persistence_Storage_RestBackend

이 BackendInterface 다음 내가 다음에 사용할 때 쿼리 내 저장소에서 개체 반환 :

예는 :

여기
$query = $this->createQuery(); 
$query = $query->execute()->toArray(); 

, $ 쿼리는 TYPO3 Tx_Extbase_Persistence_QueryInterface 산부인과와 서비스의 응답을 보유하고 ject.

문제는 ID 매개 변수 (/ ID를 사용하여 끝점에 추가)를 전달하는 동안 서비스 호출을 할 수 있어야한다는 것입니다.

public function findById($id) { 
    $query = $this->createQuery(); 

    $query->matching($query->equals('id', $id)); 

    return $query->execute()->toArray(); 
} 

문제는 내 Tx_extensionname_Persistence_Storage_RestBackend 내에서 쿼리 제약 조건에 액세스 할 수 있어야한다는 것입니다 : 이상적으로, 나는 (컨트롤러에서 호출)이 REPO 기능을 내가 원하는 반환하는 방식으로 그것을 할 것 . 일반적으로 '$ query-> getConstraint()'메서드를 사용합니다. 그러나 typo3 4.5를 사용하고 있으며이 함수는 아직 Tx_Extbase_Persistence_QueryInterface에 정의되어 있지 않습니다.

이 기능을 추가하기 위해 typo3 코어를 수정하는 것은 옵션이 아닙니다.

쿼리 인터페이스를 확장하여 서브 클래스에서이 functionnality를 추가하여 typoscript에서 클래스를 재정의했지만 이식성이 충분하지 않다는 것을 깨달았습니다. typo3 4.5 native functionnalities 만 사용하여 쿼리 제약 조건에 액세스 할 수 있어야합니다.

답변

0

글쎄요. 필요한 작업은 다음과 같습니다.

Tx_Extbase_Persistence_QueryInterface.className = Tx_MyExtension_Persistence_RestQuery 


class Tx_MyExtension_Persistence_RestQuery extends Tx_Extbase_Persistence_Query implements Tx_MyExtension_Persistence_RestQueryInterface 
{ 


} 


interface Tx_MyExtension_Persistence_RestQueryInterface extends Tx_Extbase_Persistence_QueryInterface { 

    public function getConstraint(); 

}