将来、PHP を使用してアプリケーションを構築するためのプライベート フレームワークを開発したいと考えています。私のサンプルコードは次のとおりです。
class system {
const token = "1234";
}
class data extends system {
public $driver = "mysql";
function get_name() {
if (parent::token == "1234") {
return "John";
}
}
}
class about extends system {
public $version = "10.1";
function get_build() {
if (parent::token == "1234") {
return "920";
}
}
}
私の質問は、クラス構造を含めて子関数を呼び出すことができるかどうかです。これの正確な名前はわかりません。みたいなことを思います。
$system = new system();
echo $system->data->driver; // Output "mysql"
echo $system->data->get_name(); // Output "John"
echo $system->about->version; // Output "10.1"
LUA では、コードは次のようになります。
system = {};
system.token = "1234";
system.data.driver = "mysql";
function system.data.get_name()
if (system.token == "1234") then
return "John";
end
end
system.about.version = "10.1";
function system.about.get_build()
if (system.token == "1234") then
return "920";
end
end
使用法:
name = system.data.get_name() -- variable "name" value will be "John"
ありがとう。
編集:
そのコードは、PHP で作業を開始したばかりなので、私が達成したいことを示すためのサンプルにすぎません。通常、私はLUAを使用しています。私の計画は、使いやすく、理解しやすいフレームワークを構築することです。そのため、人々はアプリケーションを簡単に作成できるようになり、関数リファレンスを簡単に覚えることができます。例えば:
$tbl_result = $system->data->select("name", "table", "id='10'");
このコードは、クエリを実行せずにデータベースからデータを簡単に選択するために使用されます。戻り値は配列リストです。また、この機能は、構成からデータベース ドライバを自動的に検出します。したがって、ユーザーは特定のドライバーで SQL クエリを知る必要はありません。ただし、関数を呼び出すメソッドは構造化する必要があります。system->data->function を使用する必要があるのはなぜですか? システム、コンポーネント、およびモジュールをルートとして持つためです。次に、すべてのルートに多くの子があります。たとえば、システムにはコア、データ、モデルなどがあります。おそらく、各ルートには同じ子の名前があります。これが、私がこの構造を構築しなければならない理由です。