2010-03-07 29 views
3

我目前正在做一些關於DBIx :: Class的研究,以便從Class :: DBI遷移我當前的應用程序。說實話,我對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中的before/after觸發器相比,它有點笨拙。

至於元數據 - 你說的是物體上的臨時列嗎?即不會存儲在數據庫行中的數據。使用CPAN上的Class :: Accessor :: *模塊可以輕鬆添加這些模塊

從CDBI切換到DBIC時做出的最難的改變之一是根據ResultSets思考 - 通常會實施什麼通過CDBI中的Class方法成爲ResultSet上的一個方法 - 並且代碼可能需要大量重構,它並不總是從一個到另一個的直接轉換。