PHP、特に WordPress プラグインでは、人々が SQL をプラグインに直接記述しているのをよく見かけます... 私が学んだ方法では、すべてをレイヤーで処理する必要があります... そのため、ある日、特定のレイヤーの要件が変更された場合、すべてがインターフェースするレイヤーを変更することだけを心配する必要があります。
現在、データベースとやり取りする方法に何か変更があった場合に、作成した X 個のプラグインではなく、1 つのレイヤーを変更するだけでよいように、データベースとインターフェイスするレイヤーを作成しています。
これは他の人が過去に遭遇した可能性があることであり、私のアプローチは非効率的であると感じています.
私は次のようなクラスを書いています
Table
Column
Row
これにより、すべての機能を処理する特定のメソッドを持つ特定のオブジェクトを使用して、データベースのテーブル、列、および行を作成できます。
$column = new \Namespace\Data\Column ( /* name, type, null/non-null, etc... */ );
$myTable = new \Namespace\Data\Table( /* name, column objects, and indexes */ );
\Namespace\TableModel.create($myTable);
私の質問は...
他の誰かが、異なるレイヤー間の分離を提供するために何かを既に書いていますか?
そうでない場合、私のアプローチは長期的にはまったく役に立ちますか、それとも時間を無駄にしていますか。他のみんなと同じように、SQL を分解してハードコーディングする必要がありますか?
これを自分で書くのに役立つ場合、より効率的に処理するために私が取ることができるアプローチはありますか?