構成データの保存方法に応じて、いくつかの方法があります。最速の方法は、データを.iniファイルとして保存し、PHPに組み込まれているparse_ini_fileを使用して解析することです。XMLやYAMLなどの他の形式でデータを保存することもできますが、異種システム間でデータを転送することはおそらくないため、XMLはお勧めしません。また、XMLは、すべての無関係なタグで読みにくくなる傾向があります( vs yamlまたはini)。
私は個人的にyamlを好み、yamlファイルを配列に解析するSymfonyのYamlコンポーネントパーサーを使用します。SymfonyのYamlコンポーネントは、Symfonyフレームワークの外部で使用できます。ZendのYamlパーサーも調べることができます。
使用する形式とパーサーを選択したら、Webサーバーからアクセスできる場所に構成ファイルを保存し、それを要求して、パーサーAPIに渡すのと同じくらい簡単です。解析された後、配列を介して値にアクセスできるはずです。
- アップデート -
<?php
$settings = parse_ini_file('test.ini');
var_dump($settings);
結果:
array(41) {
["plugins"]=>
string(0) ""
["breadcrumb-navxt"]=>
string(5) "4.0.1"
["bp-moderation"]=>
string(5) "0.1.4"
["buddypress-activity-stream-hashtags"]=>
string(5) "0.4.0"
["buddypress-group-documents"]=>
string(5) "0.3.5"
["buddypress-group-email-subscription"]=>
string(5) "2.9.1"
["buddypress-links"]=>
string(3) "0.5"
["buddypress"]=>
string(6) "1.2.10"
["calendar"]=>
string(5) "1.3.1"
["collapsing-pages"]=>
string(5) "0.6.1"
これは期待どおりに機能しているように見えるので、calendar
プラグインのバージョン番号が必要な場合は、次のようにします。
var_dump($settings['calendar']);
動的変数に格納するには:
$settings = parse_ini_file('test.ini');
foreach ($settings as $key => $setting) {
// Notice the double $$, this tells php to create a variable with the same name as key
$$key = $setting;
}
var_dump($calendar);