私はかなりOOPとZendの新人です。これまではdb接続を設定しようとしています。初心者:zendフレームワークでDB接続を正しく設定する方法は?
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = ""
resources.db.params.dbname = "dbtest"
resources.db.isDefaultTableAdapter = true
は、たぶん私はどこでも、DBアダプタにアクセスすることができます:私は私のapplication.iniファイルでこれを持って
$db = Zend_Db_Table::getDefaultAdapter();
問題ほとんどのガイドはそれを配置する場所が自動的に知っていると仮定しますが、私です正直に分かりません。私は毎回私の他のクエリを保持する複数のメソッドを作成したい場合、それは大丈夫だろう1つのクエリで
public function getPosts()
{
$db = Zend_Db_Table::getDefaultAdapter();
$sql = "SELECT * FROM posts";
$result = $db->fetchAll($sql);
return $result;
}
、しかし:私はこれまでやっていることは、私はメソッドを持っている私のindex.phpモデルであります私は$ db = Zend_Db_Table :: getDefaultAdapter()を呼び出さなければならないので、私は効率的な方法でこれをやっていないと確信しています。私はすでにさまざまな__construct()とinit()メソッドに配置しようとしましたが、うまくいかないでしょう。毎回呼び出さずにコードを追加する場所はどこですか?ありがとう。
だから、新しいクラスが自動的にあなたのためのDB接続を行いインスタンス化? Zend_Db_Table_Abstractを拡張したクラスをどこで保存すればよいのでしょうか。 – Joker
デフォルトのデータベースアダプタをブートストラップに設定している場合、使用する他のアダプタを指定しない限り、自動的に拡張するZend_Db_Table_Abstractはこのアダプタを使用します。 ZFはオートローダーを使用してクラスをロードするので、名前がファイルの位置を反映していることを確認するだけです:Model_Db_Tables_Posts()は、アプリケーションフォルダのmodels/db/tables/posts.phpフォルダにある必要がありますZendはモデルをパス内のモデルに自動的に変換します)。 –
ありがとう、私は今働いているが、今は前と同じ状況に自分自身を見つける。私はクエリを実行するメソッドを呼び出すたびに、私は使用する必要があります:$ postsTable = new Model_Db_Tables_Posts()、またはこれは通常ですか?私は毎回それを繰り返すことは望まないと考えました。 – Joker