CakePHP3 Modelless Form @ Fukuoka.php vol.17
Fukuoka.php vol.17 にて、CakePHP 3からの新機能「Modelless Form」の紹介をしてきました。 Modelless Formは、これまでのCakePHPに足りていなかったサービスレイヤ、ビジネスロジックを担当するものとして最適の機構だと考えています。 (Component?知らない子ですね… ...
Fukuoka.php vol.17 にて、CakePHP 3からの新機能「Modelless Form」の紹介をしてきました。 Modelless Formは、これまでのCakePHPに足りていなかったサービスレイヤ、ビジネスロジックを担当するものとして最適の機構だと考えています。 (Component?知らない子ですね… ...
/company/{:company_id}/employee/{:employee_id} それ、Router::resources()のネストでできるよ。 http://book.cakephp.org/3.0/en/development/routing.html#creating-nested-resource-routes Entityのsetter/getter問題 それ、Custom Typesの定義で解決できるよ。 http://book.cakephp.org/3.0/en/orm/database-basics.html#adding-custom-types Modelless Form 今回触れられていないけど、個人的にはこれがCakePHP3で一番の目玉機能。一般的なフォームからの入力処理だけでなく、API経由での入力処理や、_execute中で複数のTable扱ったり色々可能性が拡が(文字数 ...
詳しくはこちらを、 Plugins — CakePHP Cookbook 3.x documentation CakePHP 3の標準ではプラグイン名=名前空間名となります。 Fooというプラグイン名なら、モデルやコントローラーの名前空間は、\Foo\Modelや\Foo\Controllerになります。 AcmeCorp\ContactManager\Model, AcmeCorp\ContactManager\Controllerのようにベンダー名などを含めた名前空間をプラグインで使用したい場合は、以下のように/で区切って呼び出します。 ...
CakePHP 3からは、Datasource設定でprefixの指定ができなくなっています。 マニュアルを見ても設定オプションにprefixがない。 Database Basics — CakePHP Cookbook 3.x documentation ...
New ORM Upgrade Guide — CakePHP Cookbook 3.x documentation Identifier Quoting Disabled by Default In the past CakePHP has always quoted identifiers. Parsing SQL snippets and attempting to quote identifiers was both error prone and expensive. If you are following the conventions CakePHP sets out, the cost of identifier quoting far outweighs any benefit it provides. Because of this identifier quoting has been disabled by default in 3.0. ...
この投稿はCakePHP Advent Calendar 2014の8日目の記事です。 先週はものすごく寒かったですね。こんにちは nojimage です。 今回は技術的な話はほとんどなくて、自分語りになります。ゴメンナサイ。 ...
CakePHPのテストをNetBeans上で実行する記事の改訂版です。 NetBeansからのPHPUnit実行時に、cake test コマンドを実行するようにすれば、Fixtureを読み込むためのNetBeansSuite.phpの置き換えなどは不要だよね。という話です。 ...
CakePHP 1.3系および2.4系に対して、セキュリティ修正を含むリリースがでています。 SecurityComponentの改ざんチェック機構に不備があり、意図しない処理が行われる可能性があります。 ...
テストでメールを送信せずに、CakeEmailでのレンダリング内容を取りたい場合は、 // モックを作成 $CakeEmail = $this->getMock('CakeEmail', array('transportClass')); $CakeEmail->expects($this->any())->method('transportClass') ->will($this->returnValue(new DebugTransport())); // CakeEmailのMockをセット $TestTarget->CakeEmail = $CakeEmail; // ... $TestTargetを使った何らかのメール送信を含む処理 // text形式のメッセージを取得 $bodyText = $CakeEmail->message(CakeEmail::MESSAGE_TEXT); // html形式のメッセージを取得 $bodyHtml = $CakeEmail->message(CakeEmail::MESSAGE_HTML); // ... 適宜、値チェック てな感じで、CakeEmail::transportClass()をスタブ化してDebugTransportを返すようにする。で、CakeEmail::message()でbodyを取得する。 ...
3/13 - 14にかけて、graph.facebook.comがアップデートされたようで、レスポンスのStatus-LineにReason-Phraseが含まれなくなっていました。 ...