2011-01-23 1 views
1

데이터 맵퍼와 관계를 사용하는 방법은 무엇입니까? 빠른 시작의 예는 예제젠드 프레임 워크 데이터 맵퍼 및 관계?

(테이블) 사용자 (테이블) 기사 (테이블) 태그

를 들어 .. 내가 관계형 데이터로 작업하고 있다면이 datamapper으로 어떻게 작동하는지 약간의 정보가 누락

사용자 -one_to_many- 기사 -many_to_many- 태그

데이터 매퍼를 통해 한 명의 사용자에게 관련 기사와 태그를 얻는 가장 좋은 방법은 무엇입니까? 그들은 모델에서도 정의되어야 하는가? 모든 예 또는 모범 사례?

답변

1

"기사", "사용자"및 "태그"각각에 대한 클래스가있는 경우 클래스에 추가 메서드를 확실히 추가 할 수 있습니다.


class Article { 
    public function getTags() { 
    // Talk to your DAO object or table data gateway or whatever 
    // and instantiate them and return an array of Tag objects 
    } 
} 

class User { 
    public function getArticles() { } 
} 

을 또는 당신은 같은 정적 게이트웨이 클래스에서이를 구현할 수 있습니다 : 예를 들어, 당신은있을 수 있습니다 실제로 얻을 잘 사용할 수있는 모델에서 사용할 수있는 데이터 행을 얻는 방법에 관해서는


class Article_Gateway { 
    public static function fetchByTag($tagName) { } 

    public static function fetchByUser($userName) { } 
} 

Zend_Db_Table의 관계 기능을 수행하는 그 (http://framework.zend.com/manual/en/zend.db.table.relationships.html)

예 :


$accountsTable = new Accounts(); 
$accountsRowset = $accountsTable->find(1234); 
$user1234 = $accountsRowset->current(); 

$bugsReportedByUser = $user1234->findDependentRowset('Bugs'); 
+0

들으 I 지금은 ORM을 사용하고 수동으로 이러한 유형의 파일을 만드는 시간을 절약하고 싶다는 생각이 들더라도 개념을 이해할 수 있습니다. – Chris

+0

코드 생성을 시작하면 도움이 될지도 모릅니다. –