こんにちは、wahuです。
今回はconfig.yml(設定) ファイルを生成してみたいと思います。
一応configファイルの説明ですが、
Config(コンフィグ)ファイルはは設定ファイルのことです。
ユーザーのデーターを保存したり設定データを保存したりできます。
まずはconfigファイルを生成してみます。
use pocketmine\utils\Config;
はConfigクラス呼び出すため読み込んでおいてください
※この記事ですべてのコードに使用するためこの後も必要になります。
if(!file_exists($this->dataFolder))
はプラグイン用のデータフォルダがないかを確認しています。
mkdir($dataFolder, 0744, true);
で、もしなければフォルダを生成します。
$this->config = new Config();
configファイルのオブジェクトを呼び出して、
以下の引数でファイルを生成してくれます。
1引数:ファイルを生成するフォルダの指定
$this->getDataFolder() . "config.yml"
でプラグイン用のデータフォルダを取得して、ファイル名も書いておきます。
2引数:ファイルの形式
Config::YAML
ファイルの形式を指定します。
この場合、YAML形式のファイルになります。
3引数:データ
array(
"test" => "data",
"名前" => "値",
)
これはファイルに記載する内容を書いています。
この場合testが名前(キー)、dataが値になります。
呼び出す場合はtest(キー)でdataの値が入ったデータをとりだせます。
configを生成したので次はデータを取り出してみましょう。
コードは以下のようになります。
$this->config->get("名前");
説明
$this->config->get("名前");
でデータを取り出します。
"名前"を変更して設定した名前(キー)からデータを取り出せます。
最初にセットしたtestを取り出したい場合は以下のようになります
$this->config->get("test");
こんどはデータをセットしてみましょう。
$this->config->set("名前", "値");
で値をセットします。
"名前"にキーを"値"にデータを入れます。
$this->config->save();
でセットしたデータを保存します。
これをやらないとデータが保存されません
次はデータがあるかを確認してみましょう。
説明
if($this->config->exists("名前"))
で名前(キー)のデータがあるかを確認しあれば
//ある がある場所の処理を行います。
間違いがありましたらコメントしていただけると幸いです。
おまけ
今回はconfig.yml(設定) ファイルを生成してみたいと思います。
一応configファイルの説明ですが、
Config(コンフィグ)ファイルはは設定ファイルのことです。
ユーザーのデーターを保存したり設定データを保存したりできます。
まずはconfigファイルを生成してみます。
use pocketmine\utils\Config;//Configクラス呼び出すため読み込んでおく
if(!file_exists($this-dataFolder)){//configを入れるフォルダが有るかチェックmkdir($this-dataFolder, 0744, true);//なければ作成}
説明$this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML array("test" => "data","名前" => "値",));
use pocketmine\utils\Config;
はConfigクラス呼び出すため読み込んでおいてください
※この記事ですべてのコードに使用するためこの後も必要になります。
if(!file_exists($this->dataFolder))
はプラグイン用のデータフォルダがないかを確認しています。
mkdir($dataFolder, 0744, true);
で、もしなければフォルダを生成します。
$this->config = new Config();
configファイルのオブジェクトを呼び出して、
以下の引数でファイルを生成してくれます。
1引数:ファイルを生成するフォルダの指定
$this->getDataFolder() . "config.yml"
でプラグイン用のデータフォルダを取得して、ファイル名も書いておきます。
2引数:ファイルの形式
Config::YAML
ファイルの形式を指定します。
この場合、YAML形式のファイルになります。
3引数:データ
array(
"test" => "data",
"名前" => "値",
)
これはファイルに記載する内容を書いています。
この場合testが名前(キー)、dataが値になります。
呼び出す場合はtest(キー)でdataの値が入ったデータをとりだせます。
configを生成したので次はデータを取り出してみましょう。
コードは以下のようになります。
$this->config->get("名前");
説明
$this->config->get("名前");
でデータを取り出します。
"名前"を変更して設定した名前(キー)からデータを取り出せます。
最初にセットしたtestを取り出したい場合は以下のようになります
$this->config->get("test");
こんどはデータをセットしてみましょう。
$this->config->set("名前", "値");//値と名前を設定$this->config->save();//設定を保存
$this->config->set("名前", "値");
で値をセットします。
"名前"にキーを"値"にデータを入れます。
$this->config->save();
でセットしたデータを保存します。
これをやらないとデータが保存されません
次はデータがあるかを確認してみましょう。
if($this->config->exists("名前")){//ある}else{//ない}
説明
if($this->config->exists("名前"))
で名前(キー)のデータがあるかを確認しあれば
//ある がある場所の処理を行います。
間違いがありましたらコメントしていただけると幸いです。
おまけ
//用意したファイルをconfigファイルにするplugin.ymlがあるフォルダにresourcesと言うフォルダを作っておくそこにconfig.ymlファイルを置いておく$this->saveDefaultConfig();//resourcesにあるファイルをデータフォルダに入れて保存$this->reloadConfig();//作成されたファイルを再読み込みif(!file_exists($dataFolder)){mkdir($dataFolder, 0744, true);}$this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML);//データに配列を入れる$this->config->set("data",array("data1" => "test","data2" => "test2"));//データをセット$this->config->save();//保存//データを配列にした場合の上書き$data = $this->config->get("data1");//元のデータを取得$data2 = array("data2" => "data123");//上書きするデータ$merge = array_merge($data,$data2)//dataとdata2をマージ$this->config->set("data1",$merge);//データをセット$this->config->save();//保存//データをすべて取得//getAllの()をtrueにするとキーが返ってきます(通常は使用しません)$data = $this->config->getAll();//すべてのデータを取得//配列
コメント