我想審計跟蹤對數據對象所做的所有更改。假設我有事件數據對象,並且我想知道誰更改了它,更改了什麼,更改了什麼等(與頁面類似)。 Silverstripe網站建議使用Verioned,但我找不到任何實施示例。它說最好的例子是Pages已經有了Versioned實現。基本規則是在裝飾器上定義一個augmentDatabase()方法。 因此,我想爲DataObject(擴展名)使用DataExtention,然後將擴展的DataObject用於我的Event數據對象。但是有沒有簡單的例子?Silverstripe針對新版本中的數據對象的版本化功能(3.2)
1
A
回答
3
假設你要管理和監控事件數據對象的多個版本,你只需要聲明的是,你要使用的版本擴展thatDataObject
Class Event extends DataObject{
static $extensions = array(
"Versioned('Stage', 'Live')"
);
...
}
然後運行一個開發/建築 您現在應該有一個Event,Event_Live和Event_versions表。 然後,您可以查看Versioned.php中可用的方法,並將它們與Event一起使用,即publish()。這應該讓你開始。
2
「SilverStripe中的版本控制是通過Versioned類來處理的,它是一個DataExtension,它允許將它應用於任何DataObject子類。」 「
」同樣,您在版本化基礎之上創建的任何子類都會觸發創建附加表格,這些表格會根據需要自動連接。
這裏是鏈接到與實例 Versioning of Database Content
相關問題
- 1. 從舊版本的對象的反序列化對象的新版本
- 2. Realm版本化對象
- 3. 版本化Ruby對象
- 4. python中的透明對象版本化
- 5. 什麼是CCP()對cocos2dx版本的相同功能3.2
- 6. 不針對最新版本的Android
- 7. XML新版本 - 新功能
- 8. ViewState和序列化對象版本化
- 9. 大圖版本針對Android
- 10. 針對csc.exe中的特定frawework版本
- 11. LINQ to SQL對象版本化
- 12. 尋找針對軟件版本的建議版本風格
- 13. 針對商店的iPhone應用本地化版本
- 14. Openstackdotnet SDK對象存儲對象版本
- 15. 針對當前版本的Python.framework鏈接
- 16. 針對特定Android版本的編程
- 17. 針對不同版本的JRE
- 18. HTML5:針對網絡作者的版本
- 19. 針對Wicket 1.5.10的WiQuery版本
- 20. 針對特定的jQuery版本
- 21. 針對newb的NetBeans版本控制?
- 22. Redis和對象版本
- 23. Django中的模型對象版本
- 24. 編譯版本3.2
- 25. 版本3.2的Bash HTML?
- 26. std :: transform的功能版本
- 27. 針對Android的Rails式數據庫模式版本升級
- 28. 針對節點和MySQL的數據庫版本控制工具
- 29. Travis CI中的未版本化版本
- 30. Baqend中數據對象的版本控制
所以,我明白,你不能改變事件對象本身(也許因爲它來自第三方擴展)進一步閱讀。我以爲你在編寫Event DataObject。在這種情況下,你可以嘗試用Object :: add_extension('Event','Versioned(「Stage」,「Live」)')來裝飾Versioned的事件。在mysite/_config.php中。這將通過已經實現的augmentDatabase()方法來處理版本控制方面。如果您需要添加更多自定義邏輯,您可以創建自己的裝飾器,並使用相同的機制添加它。希望這可以幫助 – jfbarrois 2013-02-21 01:11:36