2

- バックグラウンド -

だから私は、ローカル開発マシンとワードプレスをインストールするためのインストーラースクリプトに取り組んでいます.私がやろうとしているのは、ユーザーがドロップダウンボックスから特定のプラグインを選択し、そこからどのバージョンを選択するかです.彼らはインストールしたいです。

- 問題 -

そのため、.cfg ファイルを解析し、すべての値を変数に動的に保存できるようにする必要があります。これにより、プラグインを追加しても壊れません。どうすればこれを行うことができますか?

4

2 に答える 2

3

構成データの保存方法に応じて、いくつかの方法があります。最速の方法は、データを.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);
于 2012-04-18T17:18:00.637 に答える
0

ファイルをjsonまたはphpのシリアル化された形式で保存できますか?

于 2012-04-18T17:10:13.590 に答える