Zend_Form_Elementの複数選択項目がある(Zend_Form_Element_MultiCheckboxなど)に関して標準でオプションの配列のキーに対してInArray バリデータが実行される。
・・・これっていつのバージョンからでしょうか?^^;
» Read more: Zend_Form_Element InArrayバリデータ
Archive for the ‘ZendFramework’ category
Zend_Form_Element InArrayバリデータ
5月 1st, 2009Zend_Db_Tableを使って新しい行を書き込み
4月 29th, 2009Zend_Db_Tableを使って新しいフィールドを追加するときcreateRow()メソッドを使ってsave()する方法と単純にinsert()する二つの方法があります。
» Read more: Zend_Db_Tableを使って新しい行を書き込み
ZendFremeworkでCSVファイル出力
2月 5th, 2009超ひさびさの更新です。
ダウンロードボタンを押すと、DBからCSVファイルにして出力するメモ。
» Read more: ZendFremeworkでCSVファイル出力
Zend_Mailで複数メール送信
10月 31st, 2008複数箇所にメールを送信するとき、そのままZend_Mailで送信するとけっこう時間がかかる。
どうやらソケットをいちいちつないだりしてるかららしい。
$mail = new Zend_Mail($mailCharset); $mail->addTo('mailaddress@xxxx.xx') ->setFrom('mailaddress@xxxx.xx') ->setSubject('title') ->setBodyText('body'); for($i=0;$i<1;$i++){ $mail->send(); }
うちのサーバーで実行したら140秒かかった。
そこでトランスポートという機能を使う。
$transport = new Zend_Mail_Transport_Smtp('localhost'); $mail = new Zend_Mail($mailCharset); $mail->addTo('mailaddress@xxxx.xx') ->setFrom('mailaddress@xxxx.xx') ->setSubject('title') ->setBodyText('body'); for($i=0;$i<1;$i++){ $mail->send($transport); }
これで5秒になった。
実際に稼動プログラムに組み込んだけどあまりスピードがあがってない。。
きっとまだ調整するところがあるんだろうな。
Zend_Mail+Smarty でメール送信
6月 9th, 2008Zend Frameworkを使ったアプリケーションでSmartyテンプレートを使ったメール送信プログラム
よく使いそうなのでメモメモ。。
Zend_Mail でシンプルなメール送信
1月 22nd, 2008Zend_MailでもZend_Dbと同様、流れるようなインターフェイス形式でコールすることもできます。
» Read more: Zend_Mail でシンプルなメール送信
Zend_Session セッションの削除
1月 22nd, 2008空間ごと消すのに意外と消し方がわからなかったのでメモ。
» Read more: Zend_Session セッションの削除
Zend_Db quoteInto
11月 22nd, 2007updateでquoteIntoを使ったwhere条件が複数ある場合、記述方法をよく忘れるのでメモ。
// 複数の条件を AND で組み合わせます $where = array( $db->quoteInto('first_name = ?', $firstName), $db->quoteInto('noble_title = ?', $nobleTitle) ); $count = $db->update('round_table', $set, $where); // 複数の条件を OR で組み合わせます $firstNameOne = $db->quote($firstNameOne); $firstNameTwo = $db->quote($firstNameTwo); $where = "first_name = $firstNameOne OR first_name = $firstNameTwo"; $count = $db->update('round_table', $set, $where);
Zend_Service_Yahooをco.jpに
10月 26th, 2007Zend_Serviceに含まれるZend_Service_YahooはAPIの飛び先がhttp://api.search.yahoo.comになっており、実際日本語サイトは全く使い物にならない。jpオプションが存在することすら疑うぐらいにw
よって改造してみたのでメモ。
Zend_Db
10月 4th, 2007ちょこっと便利そうな関数のメモ
例 10.18. 自動インクリメントのキーにおける lastInsertId() の使用法
< ?php $db->insert('bugs', $data); //自動インクリメントのカラムで最後に生成された値を返します $id = $db->lastInsertId();
そのテーブルで自動インクリメントの主キーを定義している場合は、 データを追加した後で lastInsertId() メソッドを使用することができます。このメソッドは、 現在のデータベース接続において最後に自動生成された値を返します。
同じく主キー以外は
$id = $db->lastSequenceId('bugs_id_gen');
で取得できる模様
quote() の返り値には、文字列の両端に区切り文字が追加されていることに注意しましょう。 これは、たとえば mysql_real_escape_string()のようなエスケープ用関数の挙動とは異なります。
トランザクション
< ?php //トランザクションを明示的に開始します $db->beginTransaction(); try { // いくつかクエリを実行します $db->query(...); $db->query(...); $db->query(...); // すべて成功したら、トランザクションをコミットして // すべての変更を一度に適用します $db->commit(); } catch (Exception $e) { // いずれかのクエリが失敗して例外が発生したら、 // もし他に成功しているクエリがあったとしても // それも含めてすべての処理をロールバックします。 // すべて適用されるか、ひとつも適用されないかのいずれかです。 $db->rollBack(); echo $e->getMessage(); }
Zend_Db_Selectオブジェクト
メソッドを使用して句を追加する例
< ?php // Zend_Db_Select オブジェクトを作成します $select = $db->select(); // FROM 句を追加します $select->from( ...テーブルとカラムを指定します... ) // WHERE 句を追加します $select->where( ...検索条件を指定します... ) // ORDER BY 句を追加します $select->order( ...ソート条件を指定します... );
また個々の句に対してメソッドが用意されている。
from()
join()
where()
orWhere()
group()
having()
order()
limit()
limitPage()
distinct()
など
< ?php // できあがるクエリは、このようになります // SELECT p."product_id", p."product_name" // FROM "products" AS p // LIMIT 10, 20 $select = $db->select() ->from(array('p' => 'products'), array('product_id', 'product_name')) ->limitPage(2, 10);
使いこなせば便利そう・・・使い慣れない間はSQLをそのまま記述したほうが早そう・・・^^;
具体的な使用例は使いながらUPしていくつもり。