Zend Framework-SQLを直接使用する

php sql zend-framework
Zend Framework-SQLを直接使用する

現在、Zend Frameworkを使用してゼロからプロジェクトを開始しています。 私はPHPとSQLの経験がありますが、PHPフレームワークを使用したことがありません。

データベース側について-多くのチュートリアルでは、Zendクラスを使用してSQLをラップしているため、生のSQLを記述する必要はありません。 例えば:

$select = $this->select()
    ->from('MyTable')
    ->order('MyField');

しかし、私の好みはSQLを書くことです。これは私が慣れているものであり、開発の柔軟性と速度の両方のために、これが最良の決定だと感じています。 (実際には、完全に生のSQLではなく、PDOを使用してパラメーター化されたSQLを意味することに注意してください)。

私の質問は:

  1. この方法で何か問題はありますか? 長い方がいいですか
    Zendの方法でデータベースクエリを実行しますか? Zend開発者は、Zendスタイルのメソッドクエリを使用するのではなく、SQL自体を記述するのが一般的ですか?

  2. を維持しながらこれを実装する最も一般的な方法は何ですか
    MVCコードレイアウト? Googleからhttp://snippets.dzone.com/posts/show/13117[this link](および同様)が提供されましたが、コントローラーにSQLが含まれています(これは望ましくありません)。 独自のアプリケーション固有のモデルクラスを作成し、MVCスプリットに準拠したいです。 私は自分のモデルで使用するためにZend_Db_Adapter_Pdo_Mysqlクラスをインスタンス化する多くの場所を考えることができます-しかし、私はこのための最も一般的な設計パターンを知りたいです。

  2  0


ベストアンサー

私はあなたの最善の策はあなたのモデルにこれを書くことだと信じています:

public function myQuery ($table, $id) {
    return $this
        ->getDefaultAdapter()
        ->query("SELECT * FROM ? WHERE id = ?",
            array($table,$id)
        )
        ->fetchAll()
    ;
}

この方法で実行しても問題ありません。 問題はないはずです。 実際、サブクエリまたはその他のより複雑なものを使用する必要があるときに問題が発生した場合、多くのトラブルを回避できます。 Zendの関数を使用してほとんどの操作を実行できますが、正直に言ってください。クエリが複雑になると、関数が読めなくなる傾向があります。

Zendの方が良いかどうかは、あなた次第です。 私はZendがほとんどの作業に提供する機能を好みますが、それは本当に個人的な好みの問題です。

Zendを使用している人(ほとんどが私が働いている会社の人)をあまり知りませんが、私の知る限り、両方のスタイルを使用するのが一般的です。

8


次のリンクを試してください:http://framework.zend.com/manual/en/zend.db.statement.html

1


タイトルとURLをコピーしました