2007/11/16 金曜日

記事の内容の訂正

カテゴリー: Zend Framework — trek @ 20:41:39

Zend Framework:テンプレートエンジンをSmartyにするで、Zend_View_Interface を使用したテンプレートにあるサンプルがエラーとなると言いましたが、私の間違いです。
エラーにはなりません。

オリジナルにエラーがあるとしてしまい、申し訳ございません。
訂正いたします。

2007/10/18 木曜日

PHPフレームワーク比較記事リンク(サンプルアプリケーションの構築)

カテゴリー: PHP, Zend Framework — trek @ 4:28:24

広く利用されている3つのPHPフレームワーク(Zend Framework、symfony、CakePHP)に関する記事へのリンクです。
developerWorks : IBM’s resource for developersで、サンプルアプリケーションの構築の記事が、「PHP frameworks, Part 2: Building the sample application」として、追加されています。

はじめの一歩として、手順通りに実行してみるのもよいかもしれないです。

2007/10/12 金曜日

Zend Framework: Zend_Db_Select::joinLeftメモ

カテゴリー: PHP, Zend Framework — trek @ 7:34:19

Zend_Db_Select::joinLeftの3番目の引数に空の配列を指定すると、joinLeftで指定したテーブルのカラムをSELECTで取り出すカラムに追加されないようになります。

例:

PHP:
  1. $select->from(array('a'=>'tbl_a'),
  2.                   array('cnt'=>new Zend_Db_Expr('COUNT(*)')));
  3. $select->joinLeft(array('b'=>'tbl_b'),'a.id=b.id',array());
  4. $where = $db->quoteInto('b.tmp_id = ?', '2');
  5. $select->where($where);

上記のように作成したSQLは、次のようになります。

SQL:
  1. SELECT
  2.     COUNT(*) AS `cnt`
  3. FROM `tbl_a` AS `a`
  4.  LEFT JOIN `tbl_b` AS `b` ON a.id=b.id
  5. WHERE
  6.     (b.tmp_id = '2')

2007/10/10 水曜日

PHPフレームワーク比較記事リンク

カテゴリー: PHP, Zend Framework — trek @ 23:53:02

CakePHP のおいしい食べ方: IBMでPHP3大フレームワーク記事スタート」で、次の記事が紹介されていました。

PHP frameworks, Part 1: Getting started with three popular frameworks

symfonyは、次の記事を見て、個人的に選択することはないかも、と思っていますが、上記、比較記事を今後楽しみにしたいと思います。

PHPベンチマーク: Zend Framework vs Symfony vs CakePHP vs CodeIgniter vs PHP on TRAX - 徒然なるままにBlog
PHPフレームワークのベンチマーク比較:phpspot開発日誌

2007/10/7 日曜日

Zend_Session::rememberMeのメモ

カテゴリー: PHP, TODO, Zend Framework — trek @ 4:53:06

Zend_Session::rememberMe()の使用に関してのメモです。

Zend Framework: Documentationに、次のような記述があります。

セッションの開始前に Zend_Session::rememberMe() を使用すると、セッションクッキーの有効期限を制御することができます。

Zend_Session::start()の後に、Zend_Session::rememberMe() を使用しても、クッキーの有効期限が変化するようです(TODO:詳細調査)。

Zend_Session::rememberMeを使用すると、session_regenerate_id(true)がコールされています(ZendFramework-1.0.1)。
session_regenerate_id(true)をコールすると、session_set_cookie_paramsがsession_startの後でもクッキーの有効期限が変化するようです(PHP 5.2.3)。

Firefox2とInternet Explorer6のセッション関連の振る舞いの違い

Zend_Session::rememberMeを使用しない場合

Firefox2は、ブラウザを閉じても、セッションが継続するようです(クッキーの有効期限は、「セッション終了時」となっています。)(TODO:詳細調査)。
(Firefox2のクッキーに関する設定は、[オプション]ダイアログの[プライバシー]タブの[Cookie を保存する期間]を「サイトが指定した期限まで」に設定しています。)

Internet Explorer6は、ブラウザを閉じると、セッションは継続しません。

Zend_Session::rememberMeを使用した場合

Firefox2は、クッキーの有効期限が設定され、その有効期限の間は、ブラウザを閉じても、セッションが継続するようです。

Internet Explorer6も、ブラウザを閉じても、セッションが継続しました。

その他のメモ

remember_me_secondsに設定する値

Zend FrameworkのAPI Guideに、次の記述があります。

Due to clock errors on end users' systems, large values are recommended to avoid undesirable expiration of session cookies.

大きい値がどのくらいの秒数かわかりませんが、100程度の値だとInternet Explorer6では、セッションをまったく継続できないようです。

2007/9/19 水曜日

PHP HTTPS通信でのセッション開始

カテゴリー: PHP, Zend Framework — trek @ 8:14:37

HTTPSで通信する際、PHPでセッションを開始する前に、次をコードに記述する必要があることのメモです。
「PHPサイバーテロの技法―攻撃と防御の実際」の137ページより。

PHP:
  1. ini_set('session.cookie_secure',1);

Zend_Session

Zend FrameworkのZend_Sessionを使用する場合は、次のように指定すると、cookie_secureがOnとなることをphpinfo()で確認できました。

PHP:
  1. Zend_Session::setOptions(array('cookie_secure'=>'1'));
  2. Zend_Session::start();

セッション関連の参考リンク

PHPのマニュアル
PHP: セッション処理関数(session) - Manual

Zend Framework「プログラマ向けリファレンスガイド」のZend_Session
Zend Framework: Documentation

2007/9/9 日曜日

Zend Framework:認証が必要なページを作成する

カテゴリー: PHP, Zend Framework — trek @ 1:42:01

Zend Framework:テンプレートエンジンをSmartyにするのサンプルに、認証が必要なページを追加してみます。

Zend_Aclを使って、ページへのアクセスが可能かチェックします。
認証は、Zend_Authを使ってみます。

(続きを読む...)

2007/9/5 水曜日

Zend FrameworkとPEAR::Pagerのメモ2

カテゴリー: PEAR, PHP, Zend Framework — trek @ 22:59:30

Zend FrameworkとPEAR::Pagerのメモ
で、さらにクエリ情報をURLに付加する場合のメモです。

次のようにextraVarsオプションを追加してPagerを作成しましたが、うまくいきませんでした・・・

PHP:
  1. $params['append'] = false;
  2. $params['fileName'] = '?' . $urlvar . '=%d';
  3. $params['extraVars'] = array('var'=>'foo');

appendをfalseにすると、extraVarsオプションが効かなくなるようです。

そこで、次のようにfileNameオプションにクエリ情報を付加して、解決しました。

PHP:
  1. $params['fileName'] = '?' . $urlvar . '=%d' . '&var=foo';

2007/8/30 木曜日

Zend Framework:ルーティングを定義してみる

カテゴリー: PHP, Zend Framework — trek @ 17:10:52

Zend_Controllerを使ったWebアプリケーションで、ルーティングを定義してみます。

chkというモジュールを作成した場合、デフォルトでは次のようなURLで、アクセスできます。

http://ドメイン/chk

これを次のようなURLでアクセスできるようにしてみます。

http://ドメイン/testchk

前回のサンプルにchkモジュールとblogモジュールを追加して動作を確認します。

(続きを読む...)

2007/8/29 水曜日

Zend_Registryのメモ

カテゴリー: PHP, Zend Framework — trek @ 0:56:36

Zend Framework:Zend_Registryのメモです。

Zend_Registryのget()メソッドで、登録されていないキーの値を取得しようとすると例外を投げます。
条件によってレジストリに登録しないようなことをする場合は、注意しようと思います。

PHP:
  1. $registry = Zend_Registry::getInstance();
  2.  
  3. if (isset($registry['foo']) == false) {
  4.   echo "fooはレジストリに登録されていない<br />";
  5. }
  6. else {
  7.   $foo = $registry['foo'];
  8.   // empty($registry['foo'])としないように注意する
  9.   if (empty($foo)) {
  10.     echo "fooは、empty.";
  11.   }
  12. }

次ページへ »

Copyright © 2007 とれっくかいはつ
HTML convert time: 0.328 sec. Powered by WordPress ME