こんにちは。先日ついにスプラトゥーン2を手に入れて、 日夜練習を頑張っている結城 (@super_manner)です。 毎日google先生で「ガチマッチ 勝てない 自分のせい」とググって枕を濡らしています。
さて、本日CakePHPのマイナーアップデートがありましたので、いつものごとく、ちょっとした所感、追記を添えてお知らせしたいと思います!!
今回の変更点まとめ
Http\Client
は、非標準のプロパティを持つCookieを解析しなくなりました- CakePHPのソースのこのあたりに標準プロパティがセットされているので、これ以外のものをセットしても解析ができません
- CookieComponent設定は、以前のバージョンとの下位互換性があります
- secureとhttpOnlyの部分の型がキャストされることで互換性を保ったようです
- poファイルの解析では、複数のメッセージの後に単一メッセージが定義されている場合に、単数と複数の両方に定義された同じメッセージIDを持つpoファイルが処理されるようになりました
Helper::addClass()
は、クラス属性が配列の場合、警告を出力しなくなりました- 今まではクラス属性が配列で来た場合
trim
に渡ったタイミングで警告が出ていたようです
- 今まではクラス属性が配列で来た場合
- Viewのsetterはvoidではなく
$this
を返却します - RedisEngineでキャッシュを使用するケースにおいて、
Cake\Cache\Cache::increment
やCake\Cache\Cache::decrement
を使用する際に、durationを0に設定している場合はtimeoutを設定しないようにしました- durationが0の時は確かにexpireを設定する必要はないですね!
HtmlHelper::link()
は、fullBaseオプションをサポートするようになりましたText::uuid()
は、random_int
が定義されていればrandom_int
を使用するようになりました- 定義されていない場合は従来通りの
mt_rand
が使用されます
- 定義されていない場合は従来通りの
Debugger::highlight()
が1行ずれてハイライトされない不具合が修正されました- Cookbookのこのあたりのお話ですね。今まではhighlight対象なのがfileの行数-1されていたのでずれてハイライトされる不具合があったようです
Http\Client::addCookie()
で追加されたCookieには、パスとドメインが必要です
実はコントリビューターになりました
Bakery(CakePHPの公式ブログ)に名前が載りました!やった〜。
修正は先程ご紹介した変更点の1つ目のものです。 実はコネヒトからコントリビューターがでるのは田村(@Utmrer)に引き続き2人目です。 今回は、すごく気合を入れて「よし!なにかOSSに貢献するぞ!!!」と思い立ってIssueを洗いPRを送ったわけではありません。自分が実装している途中に「おや?これはもしかして」と思い、チーム内reviewをしてもらって勇気を出してPRを送ってみました。
いままでOSSにPRを送った経験がなかったので、「こんな些細な事で送っていいのかな?」「英語理解してもらえるかな?」「英語でマサカリとんできそう…」と少し尻込みする気持ちが無かったわけではありません。 ですが、勇気を出しておくってマージされた瞬間に「あ、よかったな。これからも少しでも使っているOSSに貢献していきたいな」という気持ちが湧いてきたので、どんな小さな変更でも、取りあえずPRしてみることをおすすめします! また、意外と拙い英語でも受け入れてもらえるのだなとわかったことも、今後別のものにもチャレンジしてみようと思えたので、私にとって大きい収穫でした。 また、今回の修正箇所はCookie関連の場所だったので、改めて現在のCookieプロパティ関連の知見を深め、復習することができました。
社内にはCakePHPだけでなく、さまざまな言語やOSSへ精力的に貢献している仲間がいるので、今後も良い刺激を受けつつちょっとずつ普段自分が使用しているツール等に恩返しをしていけたらとても素敵だな、と思いました。(ちなみに、はじめて記念としてPRのページはブックマークしました :innocent:)
ありがとうって言ってもらえてとっても嬉しかったです(*´ڡ`●)
おわりに
CakePHPアップデート連載、今回はちょっとしたお気持ちを添えた投稿となりましたがいかがだったでしょうか。 次回は最近CakePHPプラグインを作成していた弊社エンジニアいとしょ(@itosho) がお送りいたします!!