CakePHP

データベースACL利用時のプラグインコントローラへのアクセス制御方法

Cake のデータベースACLについて勉強するべく、CookBookにある開発例 『http://book.cakephp.org/ja/view/641/Simple-Acl-controlled-Application』 を試してみました。実際にやってみて、『プラグインコントローラへのアクセス制御はどうすれば?』という疑…

CakePHPのリハビリ中

次の案件はCakePHPを使えそうな感じなので、ただいまリハビリ中。 一年ぶりなので忘れていること多いなぁ。。。9ヶ月も放置していたこのブログですが、またマイペースにCakePHPネタでも書いていこうと思います。まずは難解なACL周りを理解せねば。

モデルの指定列からselectタグを作るのに便利な方法

1.1系ではModel::generateList()メソッドを使えば、モデルから指定した列のkeyとvalueがペアとなった配列が取得でき、selectタグを作るのに便利でした。 1.2系ではそのgenerateList()は非推奨メソッドとなり、 「1.2系ではgenerateList()の代わりにModel::fi…

モデルのqueryメソッドでfind、findAllと同等の返り値を得る方法

常識かもしれませんが、明言されている記事が見つからなかったのでエントリー。動作確認バージョンは毎度のBeta 1.2.0.6311です。 queryとfind、findAllでの返り値の違い 例えばfindAllとqueryのそれぞれを使って全件取得した結果の違いを見比べてみます。(…

名前付きでパラメータを受け取る方法

1.2系での話です。(バージョンはBeta 1.2.0.6311) 通常 PostsControllerのhogeメソッドにアクセスする時のURLは http://localhost/posts/hogeとなります。ここに何かしらのパラメータを渡そうとするとhogeメソッドに と引数を受け取れるように定義した上で …

$form->inputで行われる自動判別のまとめ

1.1系ではHtmlHelperにあったinputメソッドが、1.2系ではFormHelperに移っています。使い方としては input('field_name', array('type' => 'textarea' /* テキストエリア指定 */)); ?> などといった感じで、オプション指定の配列にtypeを指定することで、テ…

validationのメッセージ出力をDRYにしてみる

1.2系で色々と便利になっているvalidation機能ですが、エラーメッセージ出力については「DRYじゃない」と感じる点があります。 今回はそれを解消することを試みてみました。(バージョンはBeta 1.2.0.6311) 「DRYじゃない」と感じる点 同じruleのメッセージを…

AuthComponentのパスワード暗号化を無効にする方法

1.2系で追加されたAuthComponentは、認証関連の処理を一手に担ってくれる強力なコンポーネントですが、 AuthComponentのパスワード暗号化。登録注意点。CakePHP1.2b - CPA-LABテクニカル http://blog.ne2ma2.com/archives/161 等で紹介されているように、パ…

1.2系でヘルパーからコンポーネントへアクセスする方法

まず1.1系では 例えば HogeComponent にアクセスしたいヘルパーに $this->view->controller->HogeComponent->method(); というように書けば、HogeComponent の method にアクセスできる。 CakePHP ヘルパーからコンポーネントへのアクセス方法 | Sun Limited…

URLベースで言語の切り替え

1.2系の多言語機能を使って、URLベースで言語の切り替えをするサンプルを書いてみた。サンプルでは日本語と英語に対応するアプリを作る場合を想定。app\config\routes.phpに以下の2行を追加。 Router::connect('/ja/:controller/:action/*', array()); Route…

1.2系の多言語対応メモ(3)

引き続き多言語対応で分かったことのメモ。 コア部分の翻訳ファイルは存在した 1.2系の多言語対応メモ(1) - Writing Some Codeでコア部分を含めた翻訳ファイルの作り方を紹介しましたが、日本のフォーラムのhttp://cakephp.jp/modules/newbb/viewtopic.php?v…

1.2系の多言語対応メモ(2)

前回の記事の続きです。 指定した言語の翻訳が存在しない場合は引数の値(msgid)がそのまま表示される 指定した言語のlocaleのフォルダやpoファイルがない、対訳が存在しない等の場合、__()関数の第1引数の値(msgid)そのものが表示されます。なので、引数の…

1.2系の多言語対応メモ(1)

CakePHPの1.2系から多言語機能が充実しています。多言語対応の方法としては、翻訳テキストを使う方法(gettextを利用する場合と同等の方法)とDBを使う方法の2種類がありますが、今回の話は前者のほう。 まず失敗談 Bakeryのコチラの記事によると、コンソー…

単語からCakePHPの命名規約を調べられる便利なツール

これは便利! CakePHP規約ワードメーカー WordMaker for CakePHP Conventions - CPA-LABテクニカルCakePHP関連の情報を検索していた時に偶然見つけた記事ですが、 こちらの方が公開している『CakePHP 規約ワードメーカー WordMaker for CakePHP Conventions…

はてなダイアリーのようなURLの作り方

今回は、はてなダイアリーのURLのようにドメイン名に続いてユーザー固有のIDで始まるURL(自分のでいうとhttp://d.hatena.ne.jp/ngtn/)をCakePHPでどのように実現するかを考えてみました。 まず仮に app/controllers/diaries_controller.phpファイルに定義さ…

メール受信からのシェル機能実行

空メール送信での会員登録や、メールに添付されたファイルをサーバに自動でアップロードなど、メール受信からのスクリプト実行というのは様々なシーンで用途があると思います。今回はそれをCakePHP 1.2系のシェル機能を使って実現してみました。(1.2.0.6311-…

Eclipse PDTでCakePHP開発、まず設定すべきこと

Eclipse PDTを使う理由の1つは、その強力なコード補完機能です。CakePHPを使った開発でもそれを最大限に活かさないのはもったいない!ということで、各所で既出な情報ではありますが、自分の備忘録を兼ねて書きます。知らない人は今すぐ設定することをオス…

bakeするのに地味に便利なEclipseプラグイン

Eclipse PDTで開発していて、bakeしたくなった時にコマンドプロンプト開いてcdして、ってのが煩わしい。何かいい方法がないか探してみた所、「Eclipse Platform Extensions」というEclipseプラグインを見つけた。早速、更新サイトhttp://opensource.trajano.…