我需要一個很好的配置文件格式。我打算放置表格模式。像symfony,ruby on rails等什麼是配置文件的最佳文件格式? Yaml或XML或JSON編碼的文件?哪個最適合這個目的?什麼是配置文件的最佳文件格式?
回答
正如其他人所說,你有很多選擇。除非你有一個非常好的理由去做(不能想到任何),否則不要發明(即寫解析器)這樣的事情。只是評估你的選擇:
- 你需要的任何地方訪問這些數據,我的應用程序之外(與另一種語言)
- 你希望用戶(或自己)能夠編輯使用簡單的文本編輯器中的文件
- 你需要向後兼容舊版本使用的語言
例如兼容性,PHP提供了非常簡單的序列化()和反序列化()函數。然而,這種格式不容易被人讀取/編輯(XML也可能難以閱讀,但不像PHP格式那麼難,Python的pickle模塊更糟糕)。如果您需要使用其他語言訪問數據,這是一個不錯的選擇。想想其他人 - 我最近在我的python項目中解析來自部落項目的PHP序列化數據! JSON是一個更好的選擇,因爲它的人類可讀性(如果它的「漂亮打印」,而不是壓縮形式!),人性化編輯和每種主要語言都支持JSON。但是,您將失去向後兼容性,例如用python,JSON需要版本2.6+。
我回答了答案的一部分:XML如何不易被人讀取/編輯?這是它的一大優點。 (它比JSON更詳細,並且JSON沒什麼問題) – ViennaMike 2011-05-24 21:04:28
嗯,你說得對,它比PHP的序列化格式或python醃菜更可讀。但它也非常冗長,我發現在閱讀時感到分心,在寫作時很麻煩。有一個稱爲「XML編輯器」的整個軟件類別是有原因的;) – c089 2011-05-29 11:12:57
我將答案改爲「不那麼容易」。 – c089 2011-05-29 11:13:42
你打算放哪裏?
你有選擇的負荷:每一個新的行
- XML與自定義標籤
- 鍵值對?
我不會推薦SQLite作爲配置,因爲您需要SQLite客戶端工具來設置您的應用程序,並且您還需要熟悉SQL查詢。 – RaYell 2009-08-07 07:12:51
*.ini
應該對此
[MyApp]
var1 = "foo"
var2 = "bar"
[MyPlugin]
var1 = "qwe"
您可以輕鬆地閱讀它使用parse_ini_file()
$config = parse_ini_file('/path/to/config/file', true);
echo $config['MyApp']['var2'];
很好的回答。特別是如果長期的語言範圍保持爲PHP。我一直使用.ini文件作爲我的應用程序中的「控制桿和控制旋鈕」。 – pimbrouwers 2015-04-04 19:03:13
ini是否支持多行字符串? – starbeamrainbowlabs 2016-05-30 12:47:46
Joomla最近從ini文件切換到JSON編碼文件。編碼和解碼json使用json_encode()
和json_decode()
比讀取和寫入ini文件執行得更好。
但是有一個缺點:json不容易被人讀取。你需要使用一個php腳本來編碼你的配置文件。當你想在你的網站的管理員部分編寫你的配置時,你可以很好地使用這個解決方案。
我會說JSON是非常人性化的(與標準的PHP序列化格式相比)。 – 2009-08-07 07:26:04
JSON是一個不錯的選擇,在我看來。你可以定義你的數據庫模式,例如:
{
table1: {
id: {
type:"int",
autoincrement:true
},
some_field: {
type:"string",
}
},
table2: { // etc
}
}
那麼就使用json_decode把它變成一個PHP數組。
例如
$tables = json_decode($json_text);
foreach ($tables as $tablename => $t) {
foreach ($t as $fieldname => $field) {
echo "Table {$tablename} has a record called {$fieldname}";
}
}
這將打印: Table table1 has a record called id Table table1 has a record called some_field
JSON是更容易比XML在我看來,和json_encode工作/解碼非常快,所以有小的開銷。在我看來,它比XML更可讀,並且比INI文件更好地處理複雜的數據結構。有些人更喜歡YAML,但是語法真的沒有太大的區別。
我的偏好是
- 有案可稽的PHP文件
- 數據庫用戶的具體配置
就像WordPress和無數其他的PHP應用程序使用
這些傢伙真的給你已經有好的答案。我個人喜歡文件根目錄之外的.ini文件。另外請確保(如果您使用的是Linux託管環境),您的文件只能由您的Web服務器讀取,且不可寫入。
然後,您可以簡單地解析INI文件並使用您的配置設置。 (這是如果你使用的是PHP等語言,JavaScript等ect不會在這裏工作。)
但它就像他們說的。這一切都取決於你想要在你的配置文件中有什麼數據,以及你想要什麼。
問候 康拉德C「」)
- 1. 從配置文件獲取值的最佳方式是什麼?
- 2. 什麼是保護配置文件的最佳方式
- 3. LVM配置文件是什麼格式?
- 4. 什麼是使用配置文件的最佳方法?
- 5. 什麼是用於CSS Sprites的PNG文件的最佳顏色配置文件?
- 6. 語言文件的最佳格式是什麼?
- 7. 什麼是配置文件?
- 8. 什麼是製作一個簡單的Perl配置文件的最佳方式?
- 9. 在配置文件中存儲決策表的最佳方式是什麼?
- 10. 處理數據庫中用戶配置文件的最佳方式是什麼?
- 11. 什麼文件格式適合於記錄/配置文件?
- 12. manage.py的django配置文件的格式是什麼?
- 13. 什麼是logstash配置文件的格式
- 14. CakePHP插件 - 實現插件配置文件的最佳方式?
- 15. Java應用程序配置文件位置的最佳實踐是什麼?
- 16. 在EAR文件中保存配置設置的最佳實踐是什麼?
- 17. 將我的avi文件轉換爲flv格式的最佳方式是什麼?
- 18. dde文件關聯的最佳.net替代文件是什麼?
- 19. Swf文件:開發swf文件的最佳方法是什麼?
- 20. 實現字典應用程序文件格式的最佳方式是什麼?
- 21. 什麼是生成文件並以.net格式打印的最佳方式?
- 22. 更新匹配公式以有條件格式的最佳方式是什麼?
- 23. 反應 - 什麼是保持文本格式的最佳方式
- 24. 加載正確的PhoneGap文件的最佳方式是什麼
- 25. 什麼是從NDK中的擴展文件加載文件的最佳方式
- 26. 什麼是下載內容的最佳文件位置?
- 27. 組織特徵文件的最佳方式是什麼?
- 28. 在Java中創建XML文件的最佳方式是什麼?
- 29. 什麼是搜索數百萬文件的最佳方式?
- 30. 將數據保存到文件的最佳方式是什麼?
你知道,如果你接受更多的問題,你會得到更多的代表,對不對? – 2011-03-23 13:08:44