タグ

ブックマーク / d.hatena.ne.jp/hetima (6)

  • CakePHP に use_trans_sid 風の処理を組み込む - d.hetima

    CakePHP のセッションまわりをカスタマイズする の続編。携帯向けのページに、クッキーを使わないセッション処理を組み込む方法です。 手順は、 CakeSession クラスの初期化をカスタマイズして、クッキー使用を切り替える フォームやリンクに session_id を仕込む リクエストから session_id を取得してセッションと結びつける となります。use_trans_sid を使えばもっとシンプルにはなると思いますが、セッションを保持させたくない遷移もあるわけで、その都度指定した方が便利だろうというわけで。 リクエストから session_id を取得してセッションと結びつける これは Controller の __construct() に書きます。beforeFilter() では既にセッション初期化済みなので間に合わないのです。Controller ごとに処理を書くの

  • CakePHP の renderElement で elements フォルダ以外にあるテンプレートを使う - d.hetima

    renderElement は、グローバルなメニューやフッタなど共通のパーツをライブラリ化することが第一の目的で、ファイル配置も /app/views/elements/ という controller とは関連付けされていない階層に位置しています。 で、今作っているのは以前作った Smarty でタブを作るプラグイン の CakePHP 版というようなもので、タブのコンテンツを描画する際に renderElement を使っています。周辺のパーツや汎用的な要素ではなく、メインの部分を elements で切り分けているのです。 こういう使い方をしようとするとデフォルトのファイル配置では扱い辛いのです。それぞれの element は特定の controller でしか使われないにも関わらず views/elements/ に集められてしまうので、ごちゃごちゃしてしまいます。ファイル名を工夫し

    k_37to
    k_37to 2008/01/11
    viewのパスを変更する
  • hetimaの日記 - CakePHP のセッションまわりをカスタマイズする

    CAKE_SESSION_SAVE を cake, database, php 以外の値にすると、独自のセッション処理を定義できるようです。 define('CAKE_SESSION_SAVE', 'my_session_init'); そして、CAKE_SESSION_SAVE の値 +.php という名前のファイルを /app/config 内に設置します。 /app/config/my_session_init.php その中に初期化するコードを書きます。このファイルが CakeSession クラスの __initSession() メソッド内で require_once されます(/cake/libs/session.php)。 そのため、my_session_init.php 内において $this は CakeSession クラスを指しています(実際には CakeSessi

  • CakePHP で Model を介さずに SQL を呼ぶ - d.hetima

    リードオンリーで単純な値、あるいは複数のテーブルをまたぐ統計、はたまたサイドメニュー等に必ず表示する値など、Model を使わない方が良い気がするデータをどう取得するか。そういう値も Model を使えよという意見もあるだろうし、実際迷っているとこですが、Model を使わずに済ませる方法をメモしておきます。 ちなみに上記の例で Model を使わない理由・メリットを挙げると、 リードオンリーで単純な値(例えば内部処理の if 文のみに使われる真偽値) → 変数だけで済めば軽い 複数のテーブルをまたぐ統計 → どの Model に記述したら良いか迷う サイドメニュー等に必ず表示する値 → 来の処理では使わない Model が毎回ロードされるのを避ける といったところでしょうか。基的にはパフォーマンスの問題です。また、今回のケースでは、AppController と 実際の Contro

  • CakePHPの処理の流れを追ってみよう(1) - d.hetima

    URLをリクエストしてから、実際に書いたコ−ドに辿り着くまでを追ってみます。掲載しているコード(のようなもの)は分かりやすくするために省略化したフローチャート的なもので、文法などはまったく考慮していません。分かりやすくなっているかは分かりません。また、正確にトレースできているのかも保証できません(´д`;)。 それでは入り口のindex.phpから。 app/webroot/index.php define ROOT, APP_DIR, CAKE_CORE_INCLUDE_PATH, WEBROOT_DIR, WWW_ROOT, CORE_PATH, APP_PATH { ROOT = '/path/to/cake' APP_DIR = 'app' CAKE_CORE_INCLUDE_PATH = ROOT WEBROOT_DIR = 'webroot' WWW_ROOT = 'cake/

    k_37to
    k_37to 2006/11/03
    CakePHPの処理の流れ
  • CakePHPとCode Igniterを試してみる。 - d.hetima

    CakePHPのおいしいべ方をひととおり読む。 CakePHPからcake_1.1.7.3363.zipをダウンロード。 展開して何もいじらず設置してみる。VirtualHostの設定が面倒なので既存サイトのサブディレクトリで動かす。表示されたページのimgタグが絶対パスで記述されておりリンク切れ。サブディレクトリでの動作は考慮されていないのか?(symfonyはなにもしなくても一応OKだったぞ)。controllerとviewを作ってリンクタグを作ってみても駄目だった。 なんか幻滅してしまったので、CakePHPの弟分と言われているCode Igniterを試してみる。mod_rewriteするための.htaccessがデフォルトで付いていない。サイトルートを設定ファイルに明示しなければいけないなど、至れず尽くせずという感じ。サブディレクトリで動作できるかどうかと言えば、あんまり考慮は

  • 1