cakephp

CakePHPが起動されてからdispatchするまで

app/webroot/.htaccess リクエストされたURLをクエリに付与してindex.phpを呼び出す形式に書き換え RewriteCond %{REQUEST_FILENAME} !-d # ディレクトリが存在しない場合 RewriteCond %{REQUEST_FILENAME} !-f # ファイルが存在しない場合 RewriteRule ^(.*…

CakePHPでsmartyを使う際、メソッドの不要な戻り値を表示しない方法

メソッドに表示したくない戻り値がある場合、それを出力しないようにするバッドノウハウ。 {$session->flash()} 上記はメソッドがtrueを返すため"1"と表示されてしまう 対処方法 helperに何もしないメソッドを作って戻り値を捨てる void($session->flash())}

CakePHPでユーザーIDかメールアドレスどちらでもログインできるようにする方法

認証時に、ユーザIDとパスワードなどの組み合わせだけではなく、 メールアドレスとパスワード等、複数のカラムどれでもログインできるようにする方法。 サンプル Authコンポーネントをそのまま使用。 一方の組み合わせで認証に失敗したら、もう一度、別カラ…

CakePHPでmod_rewriteが使えない場合に

mod_rewriteが使えない環境で、$_SERVERのREQUEST_URI値が取得できずエラーが出るときの対処法。 通常 http://example.com/controller/action/ mod_writeが使えない場合 http://example.com/index.php/controller/action/app/config/core.php

CakePHPとDBの文字コードを別にする方法

cakeはUTF-8のままにしときたいけど、DBはSJISじゃないとダメな場合があったので。 単純に、モデルのbeforeFind、AfterFindなどを使ってエンコードを変換する。 うまくいったように見えるけど、ホントにこれでいいかはわかりません。 MySQLとかなら、DATABAS…

CakePHPのレンダリング処理(render)

CakePHP1.2、viewのレンダリング処理部分についてのメモ。 Controller::render() viewを解釈して、結果をoutputプロパティに文字列として格納するメソッド。 戻り値としてレンダリング結果を返す。実際の出力まではやらない。 複数回呼び出すと、出力内容は…

CakePHPでSmartyを使う

CakeForgeというオープンソース開発サイトで公開されているSmarty ViewクラスでSmartyを使う方法メモ。 Smarty View class ダウンロードしたSmartyViewクラスのファイルをsmarty.phpにリネームして以下に設置。 app/views/smarty.php Smarty本体をダウンロー…

CakePHPのエラー処理(cakeError)

CakePHP1.2のエラーハンドリング方法。 Error Handling :: Common Tasks With CakePHP :: The Manual :: 1.2 Collection :: The Cookbook Object::cakeError() 基本的に、ObjectクラスのcakeErrorというメソッドを使うらしい。 appディレクトリ以下に、error…

CakePHPのリクエストパラメータチェック

リクエストパラメータに、不要な値が含まれていた場合は取り除く。 値がなかった場合は空文字の値を追加する。 array('name', 'mail', 'password', 'password_confirm'), ); $this->_paramNormalize($this->data, $keys); } function _paramNorm…

CakePHP1.2のapp/configディレクトリ

acl.ini.php アクセス制御設定用 acl = access control list(アクセス制御リスト) aco = access control object(アクセス制御対象) aro = access request object(アクセス要求対象) bootstrap.php コアとなるbootstrap.phpが読み込まれた後、app/webroot…

CakePHP1.2のScaffold(bake)

cakephp1.2のscaffold*1の作り方メモ。 $ cake/console/cake bake 上記コマンドで、対話的にscaffoldの作成ができる。 ./cake bake model のように引数を渡してもOK Database Configuration = app/config/database.phpを作成 Project = 新しいプロジェクト(…