2010-03-07 3 views
3

현재 Class :: DBI에서 현재 응용 프로그램을 마이그레이션하기 위해 DBIx :: Class에 대한 조사를하고 있습니다. 솔직히 DBIx :: Class에 대해 조금 실망했습니다. Class :: DBI를 사용하여 결과 클래스를 구성 할 때 모델에 메타 데이터를 설정할 수 있습니다. 코드 생성기없이 on 함수를 호출하면됩니다. .. 나는 DBIX :: Class와 동일한 일을 할 수 있습니까? 또한 클라이언트 측 트리거가 DBIx :: Class에서 지원되지 않거나 잘못된 문서를보고 있지 않습니다.Class :: DBI에서 DBIx :: Class로 이동

+1

조금 늦었지만, 지금까지 이것을 본 적이 없습니다. - 'perl'로 태그를 붙여야합니다. – plusplus

답변

5

트리거는 Result 클래스의 적절한 메소드 (new/create/update/delete 등)를 재정의하고 코드 전후에 부모 ($self->next::method() 통해)를 호출하여 구현할 수 있습니다. 틀림없이 Class :: DBI의 이전/이후 트리거와 비교해 보면 다소 어색합니다.

메타 데이터는 - 개체의 임시 열에 대해 이야기하고 있습니까? 즉 데이터베이스 행에 저장되지 않을 데이터입니다. CPAN에서 Class :: Accessor :: * 모듈 중 하나를 사용하여 쉽게 추가 할 수 있습니다.

CDBI에서 DBIC로 전환 할 때 가장 어려운 변경 사항 중 하나는 ResultSets 측면에서 생각하는 것입니다. CDBI의 Class 메소드를 통해 ResultSet에 대한 메소드가되며 코드를 상당히 리팩토링해야 할 수도 있습니다. 코드를 항상 리팩토링해야 할 필요는 없습니다.