1

Zend_Queue を使用してメールをキューに入れ、送信しています (http://framework.zend.com/manual/en/zend.queue.adapters.html)

Zend_Queue_Adapter_Db のデフォルトのテーブル名を変更する方法はありますか? デフォルトでは、テーブル名は「queue」と「message」ですが、これは少し紛らわしいので、名前を queue と queues_messages にしたいと思います。

4

1 に答える 1

6

これらのテーブル名は、ミューテーターが組み込まれていないデフォルトのプロパティ値としてハードコーディングされているように見えますが、おそらくZend_Queue_Adapter_Dbをオーバーライドして入札を行うことができます。このコードはテストされていませんが、次のようなものです。

class My_Queue_Adapter_Db extends Zend_Queue_Adapter_Db
{
    public function __construct($options, Zend_Queue $queue = null)
    {
        parent::__construct($options, $queue);
        if (isset($options['queueTableName']) {
            $this->_queueTable->setOptions(
                array(Zend_Db_Table_Abstract::NAME => $options['queueTableName'])
            );
        }
    }
}

次に、「queueTableName」プロパティをコンストラクターに渡します。同じ原則が_messageTableプロパティにも適用されます。

于 2011-06-21T20:55:32.760 に答える