从Class :: DBI移动到DBIx :: Class

mar*_*ghi 3 perl class-dbi dbix-class

我目前正在对DBIx :: Class进行一些研究,以便从Class :: DBI迁移我当前的应用程序.老实说,在配置结果类时,我对DBIx :: Class有点失望,使用Class :: DBI我可以通过在没有代码生成器的情况下调用on函数来设置模型上的元数据等我的问题是. ..我可以用DBIX :: Class做同样的事情似乎DBIx :: Class中不支持客户端触发器,或者我没有查看错误的文档?

plu*_*lus 5

触发器可以通过重新定义适当的方法来实现的结果类(新/创建/更新/删除等),并调用父(经$self->next::method()前或代码后的话).不可否认,与Class :: DBI中的before/after触发器相比,它有点笨拙.

至于元数据 - 您是在谈论对象上的临时列吗?即不会存储在数据库行中的数据.这些可以使用CPAN上的Class :: Accessor ::*模块之一轻松添加

其中最难的变化,使切换时从CDBI到DBIC是想在结果集方面 - 往往会是怎样通过在CDBI一个类的方法已经实现成为一个结果集的方法 - 和代码可能需要相当重构,它的并不总是从一个到另一个的直接转换.