ユーザー識別子とURLルートの衝突を防ぐ CakePHP プラグイン SlugGuard を公開した
TL;DR: ユーザーが入力するURLスラッグが、Webアプリケーションのルートや予約語と衝突しないようバリデーションするCakePHP 5.xプラグインを公開しました。 ...
TL;DR: ユーザーが入力するURLスラッグが、Webアプリケーションのルートや予約語と衝突しないようバリデーションするCakePHP 5.xプラグインを公開しました。 ...
この記事は、 CakePHP Advent Calendar 2019 17日目の記事です。 Symfony のコマンドラインアプリケーションを CakePHP コマンドラインアプリケーションとして動かす方法を解説します。 (余談ここから)昨日(12/16 JST)ついに、CakePHPの次期バージョンである4.0がstableリリースされました! > CakePHP 4.0.0 Released — Bakery 3.xから色々と整理され、さらに良いフレームワークになったと思います。(余談ここまで) ...
この記事は、 CakePHP Advent Calendar 2019 3日目の記事です、が、6日に公開しました。 PhpStorm Live Template? 公式にヘルプがあるよ。 Live templates - Help | PhpStorm ライブ・テンプレート - 公式ヘルプ | PhpStorm CakePHPのビューテンプレートを書くのをちょっと楽にする CakePHPのテンプレートは素のPHPです。こんな感じですね。 ...
この記事は、 CakePHP Advent Calendar 2019 2日目の記事です。 1日目の記事は、hgsgtkさんの「来たるCakePHP 4.0 を知ろう - Qiita」でした。 TL;DR: PHP 5.6 を使っている人は paragonie/random_compat を入れましょう。 先月に、UUIDの衝突に関する話題が盛り上がりました。 ...
この記事は、 CakePHP Advent Calendar 2018 17日目の記事です。 前日の記事は chinpei215 さんの CakePHP2 のデバッグツールバーをプリチーにする - Qiita でした。 TL;DR: ControllerResolver.php - gist CakePHP 3.4以降の話。 権限コントロールまわりのアレコレのために、URL情報からコントローラークラスを取得したかったのでやってみました。 ...
TL;DR: beforeSaveでassociatedを書き換えるときは、ドット記法は使えないので配列で指定する。 Authors hasMany Posts hasMany Comments のリレーションがあるとする。 Authorsから、Posts、Commentsをまとめてsaveしたい場合、通常のsaveであればassociatedに指定してやればよい。 ...
composer require cakephp/chronos:^1.2 setTestNow()メソッドがクラスを横断して時刻セットできるようなった! CakePHP 3.2以降、時刻操作クラスとして cakephp/chronos が採用されています。 CakePHP内ではChronosを継承した \Cake\I18n\FrozenTime, \Cake\I18n\Time, \Cake\I18n\FrozenDate, \Cake\I18n\Date を使用でき、データベースの時刻系のフィールドはこれらのクラスへマッピングされます。 ...
Posts hasMany Comments の関係で、最新のCommentsを3件だけ紐付けて取得したい場合を考える。 1. containに書く方法 再利用を考えなければ以下のように、containでクエリを書けばよい。 ...
この記事は、 CakePHP Advent Calendar 2017 17日目の記事です。 前日の記事は sizuhiko さんの テストデータを簡単に作る方法 でした。 今日は、私 nojimage が2017年に公開したCakePHP 3向けのプラグインをだだだっと紹介したいと思います。 ...
この記事は、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に書くという記事を見かけるたびに、それはアンチパターンじゃないのと感じている日々。 ビジネスロジックをどこに書くべきか、共通処理をどこに書くべきかというのを、自分の考えを整理する意味でも記事として残しておきたいと思います。 ...