我将动态模式下的DBIx::Class::Schema::Loader切换为静态。如何让DBIx :: Class :: Schema :: Loader忽略非结果类?
但有一个问题,我的结果类与非结果类混淆。 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() 类的背板::首页::角色:: HasCache失败 - 你确定这是一个真正的 结果类?
我被困在这个类的布局。 BackPAN::Index::Dist
,File
和Release
都是公开记录的。作为查询的结果,预计许多方法会返回它们。
我需要一种方法在静态模式下使用DBIx::Class::Schema::Loader而BackPAN::Index::Dist
,File
和Release
作为结果类。
我一直试图让DBIx::Class::Schema::Loader拼出生成的结果类,而不是依靠load_namespaces
来搜索子目录。
理想情况下,我想生成的结果类是在自己的子目录与Dist
,File
和Release
作为子类更容易定制。但是,对模式的查询必须返回自定义的子类。
是的,如果我硬编码班级名单它的作品。麻烦的是,DBIC :: Schema :: Loader使Schema类。我如何从中获得控制权? – Schwern
另外,如果有一种方法,我可以让DBIC :: Schema :: Loader只做结果类而不是方便的模式。 – Schwern
Schema :: Loader假设一个空的名称空间,它在其中生成所有类的类。修改生成的模式(以及其他类)不仅被支持,而且被假定,因为它的目的只是为了让你开始。 –