CakePHP の書き方

この記事は、CakePHP3 Advent Calendar 2016 25日目の記事ではありません。 まとめ Controller/Componentにビジネスロジックを書かない カスタムfindを活用しよう 1テーブル1モデルではなく、場面によってモデルクラスを増やそう Modelless Form / Tableless Modelを活用しよう beforeSave/afterSaveは諸刃の刃 Behaviorにビジネスロジック書くのもあり View層ではView Cell/View Blockを活用しよう CRUDプラグインお勧め この記事を書いた動機 CakePHPにおいてビジネスロジックに該当するものをComponentに書くという記事を見かけるたびに、それはアンチパターンじゃないのと感じている日々。 ビジネスロジックをどこに書くべきか、共通処理をどこに書くべきかというのを、自分の考えを整理する意味でも記事として残しておきたいと思います。 ...

12月 25, 2016 · nojimage

CakePHP3 Modelless Form @ Fukuoka.php vol.17

Fukuoka.php vol.17 にて、CakePHP 3からの新機能「Modelless Form」の紹介をしてきました。 Modelless Formは、これまでのCakePHPに足りていなかったサービスレイヤ、ビジネスロジックを担当するものとして最適の機構だと考えています。 (Component?知らない子ですね… ...

6月 23, 2016 · nojimage

PHPカンファレンス福岡2016 CakePHP3補足

/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扱ったり色々可能性が拡が(文字数 ...

5月 21, 2016 · nojimage

PHPカンファレンス福岡2016 LT “Codeceptionでテストをしよう”

2016/05/21に福岡での開催は2度目となるPHPカンファレンスに参加しました。 今回、CodeceptionについてLTをさせて頂きました。 5分間という短い時間でしたので簡単な内容ではありますが、発表に使用したスライドを公開します。(15分枠欲しかった… ...

5月 21, 2016 · nojimage

Ansibleでyum関連操作が遅い

yum-fastestmirror が邪魔をしている。 対策として、yum-fastestmirrorをアンインストールするか、/etc/yum/pluginconf.d/fastestmirror.confでenanbled=0としてプラグインを無効化する。 ...

7月 23, 2015 · nojimage

CakePHP 3 プラグインの名前空間をベンダー名付きにする方法

詳しくはこちらを、 Plugins — CakePHP Cookbook 3.x documentation CakePHP 3の標準ではプラグイン名=名前空間名となります。 Fooというプラグイン名なら、モデルやコントローラーの名前空間は、\Foo\Modelや\Foo\Controllerになります。 AcmeCorp\ContactManager\Model, AcmeCorp\ContactManager\Controllerのようにベンダー名などを含めた名前空間をプラグインで使用したい場合は、以下のように/で区切って呼び出します。 ...

7月 3, 2015 · nojimage

PHPカンファレンス福岡2015に行ってきました

6/27(土)に、福岡では初の開催となるPHPカンファレンス福岡へ参加してきました。 PHPカンファレンス福岡2015まとめ #phpconfuk - Togetterまとめ 福岡のPHP関連では久々の大きなイベントということで、スタッフのみなさまの苦労は大変なものだったと思います。おかげさまで楽しく参加することができました。スタッフのみなさま、登壇者のみなさま、ありがとうございました。 ...

7月 1, 2015 · nojimage

CakePHP 3ではデータソース設定にprefixを指定できない

CakePHP 3からは、Datasource設定でprefixの指定ができなくなっています。 マニュアルを見ても設定オプションにprefixがない。 Database Basics — CakePHP Cookbook 3.x documentation ...

6月 17, 2015 · nojimage

CakePHP 3では識別子がクォートされなくなっている

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. ...

6月 12, 2015 · nojimage

勉強会のタイトルに「第n回」という表記は必要ない

単純に開催年月を付ければよい。 と、勉強会に行きたいけど途中から参加するのは敷居が高いかなーと感じていそうな人のツイートを見て思った。

2月 5, 2015 · nojimage