나는 동적 모드에서 DBIx::Class::Schema::Loader을 정적으로 전환하고 있습니다.DBIx :: Class :: Schema :: Loader가 non-result 클래스를 무시하도록하려면 어떻게해야합니까?
하지만 문제가 있습니다. 결과 클래스가 결과가 아닌 클래스와 섞여 있습니다. Here's the specifics.
lib/BackPAN/Index.pm # main API
lib/BackPAN/Index/Dist.pm # result class
lib/BackPAN/Index/File.pm # result class
lib/BackPAN/Index/Release.pm # result class
lib/BackPAN/Index/Schema.pm # subclass of DBIC::Schema::Loader
lib/BackPAN/Index/Role/... # various roles
정적 스키마 생성으로 전환하면 역할에 의해 트립됩니다.
DBIx :: 클래스 :: 스키마 :: load_namespaces() : load_namespaces() 클래스 BackPAN :: 지수 :: 역할 :: HasCache 실패에 대한 시도 - 당신이이 실제 결과 클래스입니다 확신?
나는이 클래스 레이아웃을 고수했다. BackPAN::Index::Dist
, File
및 Release
은 모두 공개적으로 문서화되었습니다. 많은 메소드가 쿼리의 결과로 반환 할 것으로 예상됩니다.
나는 BackPAN::Index::Dist
, File
및 Release
이 결과 클래스로 사용하는 동안 정적 모드로 DBIx::Class::Schema::Loader를 사용하는 방법이 필요합니다.
나는 DBIx::Class::Schema::Loader가 load_namespaces
에 의존하지 않고 생성 된 결과 클래스를 철자로하여 서브 디렉토리를 검색하려고 노력했습니다.
이상적으로는 생성 된 결과 클래스를 Dist
, File
및 Release
과 같은 하위 디렉토리에 포함시켜보다 쉽게 사용자 정의 할 수 있습니다. 그러나 스키마에 대한 쿼리는 사용자 지정된 하위 클래스를 반환해야합니다.
BackPAN::Index::Schema::Result::Dist
BackPAN::Index::Schema::ResultSet::Dist
DBIx::Class::Schema#load_namespaces 문서는 기본값이 아닌 값으로 설정하는 예를 보여
예, 클래스 목록을 하드 코딩하면 작동합니다. 문제는 DBIC :: Schema :: Loader가 Schema 클래스를 만든다는 것입니다. 그것으로부터 어떻게 통제를 벗어날 수 있습니까? – Schwern
또는 DBIC :: Schema :: Loader를 만들 수있는 방법이있는 경우에만 결과 클래스를 만들고 편리 할 스키마는 만들지 마십시오. – Schwern
Schema :: Loader는 모든 유형의 클래스를 생성하는 빈 네임 스페이스를 사용합니다. 생성 된 스키마 (및 다른 클래스)를 수정하는 것은 지원되는 것이 아니라 시작 목적으로 사용되기 때문에 가정됩니다. –