0

データベースの存在に依存する再利用可能なコードがいくつかあります。したがって、ライブラリにデータベースが存在することを確認する必要があります。それを行う正しい方法は何ですか?

テーブルが存在しない場合にテーブルをセットアップするクラスを持つことを考えていました。よく知られている設計パターンまたは使用方法はありますか?

PS : ZF 1 を使用しています。

編集: 正しいとは、私たちプログラマーが正しいものを後ろに置くことを意図しています: エレガント、つまり: 再利用可能、構成可能、プラットフォームに依存せず、依存関係が少なく、結合が少ない。

編集:最初のコメントと回答の後、「モジュール」という言葉の非常に貧弱な選択を「ライブラリ」に変更しました。

4

1 に答える 1

2

次のような単一のクラスを作成します。

class My_SchemaChecker
{
    // db adapter
    protected $db;

    public __constructor($db)
    {
        $this->db = $db;
    }

    public function ensureSchemaExists()
    {
        if (!$this->doesSchemaExist()){
            $this->createSchema();
        }
    }

    protected function doesSchemaExist()
    {
        // check that tables, etc exist
    }

    protected function createSchema()
    {
        // issue queries to create desired schema
    }
}

使用法は次のとおりです。

$checker = new My_SchemaChecker($db);
$checker->ensureSchemaExists();
于 2013-01-13T05:13:20.333 に答える