Shell は、コメント書いたらそれで終わりにしたい
この記事は CakePHP Advent Calendar 2014 の 19日目の記事です。 今年は CakePHP3 のリリースを目前に控えた高揚感もあり、例年にも増して毎日が待ち遠しかったです。まだあと数日楽しめますね。 昨日はkaihiro さんの “CakePHP2 Search PluginのpresetVarsとfilterArgsについて調べてみた” でした。 今日は CakePHP...
View ArticleCakePHP3.0への移行の準備メモ
CakePHP2系の最新版を利用しながら、3系への以降を少しでもスムーズにさせるためのメモです。 実際には非常に多くの作業を伴うことが予想されますが、可能な部分だけでも対応しておきたいところです。 このエントリは随時更新中です。気づいた時&暇な時に追加・更新していきます。 PSR-4 に準拠した名前空間の導入 CakePHP3.0 から namespase が導入され、同時に PSR-4...
View Articleインターネットに詳しくない人に GET と POST の違いを説明した
先日、あまりインターネットに詳しくない人に、どうしても GET と POST の違いを説明しなくてはならなかったので次のような例えをした。 (URL についても知ってもらう必要があったので、まず、ウェブページには個別の URL があるというところから説明しました) URL とは?...
View ArticleCakePHP 2.5.0 にバージョンアップする時の注意
CakePHP2.5.0 がリリースされました。それにともない、既存のコードが動かなくなる場合があるのでメモしておきます。 ※(下記参照: 2.5.1で対応される模様です) -> (されました) バージョンを上げるとおかしくなるのは珍しいことじゃないですが、今回は CakePHP の bake...
View ArticleCakePHP のスレッド形式のデータをテーブル表示用のデータに再構築
CakePHP の Model::find(‘threaded’) で取得した入れ子状態のデータを、テーブル表示できるように変換するためのユティリティを作成しました。 https://github.com/zuborawka/cakephp-thread-utility インストール composer を使うと楽 { "require" {...
View ArticleHTMLタグを出力せずに、PHPStormで javascript と css を記述
Twitter で、こんな記事を読んだんで、そう、確かに!と膝を打つ思い。 CakePHPで、$this->Html->scriptStartとendで囲って、コードブロックでjsを書きたいとき、scriptタグがないためにNetbeans(もしくはSublime)がjsと認識してくれない(=補完やカラーリングが動作しない)のを解決する方法はないものか — Masayuki Tahara...
View ArticleCakePHPを2.4.1以降にアップグレードするときはModelとModelBehaviorのメソッドシグネチャの変更に気をつける
もうだいぶ経ちますが、CakePHPが2.4.0から2.4.1にアップグレードされました。 CakePHP 2.4.1 released ここで、 Method signatures of Behavior callbacks was corrected. If you are using PHP5.4 you may have to update the method signatures of...
View Article空のメソッドとビューファイルを追加するだけの CakePHP プラグイン
AddActionShell plugin このCakePHPのプラグインは、指定したコントローラに空のアクションを追加するシェルコマンドです。 アクションに対応する空のビューファイルも生成します。 -> Github...
View ArticleCakePHP のプラグイン用 All Test Suite を簡単に作る方法
CakePHP の Debugkit プラグインから拝借する 今までプラグイン作るたびに All Test を毎回チマチマ書いていて面倒だなと思ってたんですが、CakePHP謹製の Debugkit プラグインのコードを拝借するととても楽ができたのでメモ。 まず Debugkit は設置しておいて下さい。なければコピペでも大丈夫ですが。...
View ArticleCakePHP のリバースルーティングが思うように行かないのでメモ
CakePHP の Router::connect() を使ってあれこれルーティングを設定したあと Router::url() で望みどおりのURLを取得したいのに、上手くいかない。...
View ArticleCakePHP の Modelで使用しているテーブルをダンプ
Modelで使用しているテーブルをダンプするので書いたコード。 CakePHPで特定のModelが使用しているテーブルをブラウザ経由でサクッとダンプしたい時のひな形です。めったに必要ないと思いますが、更新作業中にツールを切り替えずにダンプファイルを取得したいときなどに。 Core...
View ArticleCakePHP の validation “notempty”で勘違いしていた
よくこの誤解に今まで気づかなかったものだと半ば驚きつつ、恥を晒す。 バリデーションはいかなる場合でも『渡された値』に対してのみ行われるということ。 『渡されなかった値』に対して、「おい、渡せよボケカス!」とは注意してくれない。 まぁ、当たり前、ですよね。。。(笑) Model のバリデーションルールで notempty...
View Articlebakeしたファイルをプラグインのディレクトリへコピーするプラグイン
CakePHP で bake する時のオプションで プラグインディレクトリにファイルを生成する方法ってないんでしょうかね? 調べても分からなかったんで bake コマンドをカスタマイズしようと思ったけどややこしそうだったんで、簡単な処理だけコンソールから行えるようにしたものを作って github にアップ。プラグインの作成を助けるための、Cakeコマンドとして動作するプラグインです。...
View ArticleCakePHPのAuthコンポーネントのユーザー認証で複数のフィールド名を用いる
やりたいこと Auth コンポーネントでログイン認証する際に、パスワードとセットにするアカウントのフィールドを複数の候補を対象にしたい場合の話です。 たとえば「ユーザー名でもメールアドレスでもOK」みたいな。 これをコントローラ側ではなく、コンポーネント側で実装したい。 コントローラ側で実装する参考ページ コントローラ側での回避策としてはこちらが参考になりました。...
View ArticleCakePHP辞典、予約開始された!
待ってました! Twitterで著者のつぶやきを追ってましたが、かなり充実した内容で圧倒的な情報量になっている模様。 Amazon のデータを見ると 699ページとなっていて、前作より更にボリュームアップしています。 製本も一度開くと閉じにくい仕様らしく、机の上に開けながら作業をするのにもってこいではないかと。 期待大です。
View ArticleCakePHP で、bootstrap 以前の致命的なエラーを何とか処理したい。。。
CakePHPの運用における、ほんの小さな、まぁ問題になることはないだろうと思われるような隙間を埋める。そんな話です。 今後もっといい方法が見つかれば更新します。とりあえずやりたいことだけは上手く行ってるのでメモ。 バージョンは2系 (2.3.0) です。phpバージョンは5.4.4 。サンプルではコールバックにクロージャを用いているので、5.2系だとそこだけ変更する必要があります。 問題...
View ArticlePhpReader と IniReader を使って設定ファイルを読み込む
ConfigReaderInterface とは? CakePHP の Configure ディレクトリに ConfigReaderInterface っていう interface が定義されているんですね。知らなかった。これは設定ファイルを読み込むために用意されたインターフェイスでコアでは PhpReader と IniReader の二つがそれを実装して組み込まれています。 コアコードでは...
View Articleget_class_vars() を使ってスマートに実現する、クラス変数初期値の保存とリセット
CakePHPのソースで一つ勉強になったのでメモ(ひょっとしたら古くからの定石かも知れませんが・・・) クラスのメンバー変数を初期値に戻すためのリセットメソッドを用意することってあると思います。このときメソッドの中に初期値をコピーして貼り付けても良いんですが、いちいち同じ値に更新するのも面倒くさい。特に開発中には何かと変更がつきものなのでどうにもスマートじゃない。...
View ArticleCakePHP2のsaveメソッドを詳しく順に読んでみた
Model::save() メソッドを丁寧にはしから読んでメモしただけですけどなかなか気持ち良い作業でした。 いつもダラーッと見てたんですけどちゃんとメモを取ったら仕組みが腑に落ちた。 と思ったら hasAndBelongsToMany モデルのみ更新のケースにおける返り値を間違って解釈してたっぽい。ので修正。そして自分自身HABTMに関しては勉強不足だったことに気付かされた。...
View Article