CakePHP2 CakePHP2のSecurityComponentのCSRF対策でブラックホールに頻繁に吸い込まれる ■なぜだかCSRF対策が暴発してブラックホールに頻繁に吸い込まれる こちらのCopyContentDetectorで、頻繁にブラックホールに吸い込まれる現象が発生していました。フォームを表示して、普通にボタンを押すだけでCSRFで例外発生し... 2018.05.14 2018.10.27 CakePHP2
CakePHP2 CakePHP3のメール送信でPermission Denied ■環境によって動かない時がある CakePHP3でメール送信をするとき、PermissionDeniedとでて送信できない現象が発生していました。全くコードは同じだったので、環境の問題です。以下のような例外が発生していました。 ⟩ Cake... 2017.09.10 CakePHP2
CakePHP2 CakePHP + AjaxでのPOSTで受け取った情報が空になる原因 Ajaxでフォームから情報を取得して、CakePHPで作成したAPIのエントリポイントにPOSTをした時、どうしてもCakePHP側の$this->request->dataが空になるときの対応です。 以下の様なAjaxのコードがあったとし... 2017.06.19 2018.10.27 CakePHP2jQuery
CakePHP2 CakePHPのupdateAllでDATE型、DATETIME型が更新されない upateAllメソッドを使って、条件に当てはまるレコードを一気にアップデートしたい場合があります。updateAllメソッドを使うと便利なのですが、日付の更新をしようとすると【0000-00-00】みたいになってしまって、正しく更新できま... 2016.08.13 2018.10.27 CakePHP2
CakePHP2 CakePHPでコントローラーごとにエラーページを変更する CakePHPでAPIを実装している時に、以下のようなことを実装したいと思っていました。 ■通常画面のエラーページは(404ページや500ページ)ヘッダやフッタなどが表示されているエラーページを表示したい ■APIでの接続はエラーページはJ... 2016.08.12 2018.10.27 CakePHP2
CakePHP2 CakePHPのPagenateには表示件数に100件の上限がある 最近知ったのですが、CakePHPのPaginateには一回の表示件数に上限があるみたいですね。デフォルトでは100件までのようです。ですので、limitで300とか指定しても、100件で表示されてしまいます。以下のようにmaxLimitを... 2016.08.07 2018.10.27 CakePHP2
CakePHP2 CakePHPでsave実行時にmodifiedを更新しない方法 CakePHPでsaveメソッドでデータを更新するとmodifiedが自動で更新されます。要件によっては更新してほしくない場合があります。以下のように記述をすることで、modifiedが更新されないようになります。 $update = [ ... 2016.06.18 2018.10.27 CakePHP2
CakePHP2 CakePHPでjsonを戻すAPIを実装するサンプル CakePHPでjsonを戻すAPIを作るサンプルを書いてみました。結構簡単なので、参考にしてみてください。 ■気をつけるところ 気をつけるのは、【autoRender】と【autoLayout】をfalseに設定することと、respons... 2016.05.19 2018.10.27 CakePHP2
CakePHP2 CakePHPで構築したWebサービスのメンテナンスモードを簡単に実装する【Maintenance plugin】 このCopyContentDetectorはCakePHPで実装しています。サービスを運用していくなかで、どうしてもメンテナンスが必要な時があります。そのメンテナンスモードを簡単に実装できるプラグインを紹介します。 ■Maintenance... 2016.04.25 2018.10.27 CakePHP2
CakePHP2 CakePHPからgmail経由でメールを送信する CakePHPからメールを送信するとき、postfix等のMTAを利用してもいいのですが、いろいろと設定が面倒です。gmail経由でメールを送信することで、設定の手間も省けると思います。 ここでは、CakePHPからgmail経由でメールを... 2016.03.07 2018.10.27 CakePHP2
CakePHP2 [CakePHP]saveを連続で実行したとき、データがUPDATEされるのを防ぐ CakePHPのDB上のデータを新規追加したりするときはsaveメソッドを使うことが多いと思います。便利です。しかし、挙動を理解しておかないと意図しない動きをすることがあります。 対象はCakePHP2系となっています。 ■データ新規追加時... 2016.03.07 2018.10.27 CakePHP2
CakePHP2 Capistrano3でCakephpで作ったシステムをデプロイするまでの手順 このコピペチェックツールですが、サーバが現在7台位になっています。全部Conohaで作っています。mod_proxy_balancerを使って、APIアクセスをそこそこ捌けるようにして処理速度を稼いでいます。 ■サーバが多いと、デプロイがと... 2016.03.01 2018.10.27 CakePHP2
CakePHP2 CakePHPのquery関数でプレースホルダを使う CakePHPのORマッパーではselect for updateなど利用することはできません。 そのため、直接クエリを書いて実行する必要があります。 その時、引数で渡した値などを直接クエリ内に入れるとSQLインジェクション等のセキュリティ... 2016.01.11 2018.10.27 CakePHP2
CakePHP2 compact関数のひと工夫でCakePHPのコントローラーをすっきりさせる CakePHPのコントローラー上でよく利用する【set関数】。この関数をもっと見やすく、スマートに書く方法を紹介します。かなり見やすくなるおすすめの記述方法です。 ■set関数の普通の書き方 CakePHPでViewに値を渡すとき、以下のよ... 2016.01.10 2016.05.23 CakePHP2
CakePHP2 CakePHPで独自のログファイルにログを出力する方法 CakePHPでlog関数を利用すると、デフォルト設定でdebug.logまたはerror.logにログが出力されます。この状態のままだと、バッチファイルが複数ある時など、どのバッチから呼ばれた結果のログなのか、わからなくなってしまいます。... 2015.12.17 2016.05.23 CakePHP2
CakePHP2 CakePHPでデータベースアクセスしないモデルを作る方法 データベースへアクセスする必要のないモデルを作る方法です。memcacheやredisなどにアクセスするためのモデルを作るときや、ロジックのみ書いてあるモデルを作る時などに利用できると思います。 以下のように記述します。 class hog... 2015.12.02 2018.10.27 CakePHP2
CakePHP2 CakePHPで現在実行中のController名,action名を取得する ■コントローラー名の取得 以下のように記述すると、コントローラ名が取得できます。 echo $this->name; routes.phpで別名になっていても、実際のコントローラー名が取得されます。 ■アクション名の取得 以下のように記述す... 2015.09.23 2016.05.23 CakePHP2
CakePHP2 CakePHPでデバッグしやすいログ出力方法 CakePHPでの便利なログの出力の仕方をメモしておきます。 この方法を使うと便利にデバッグできるかと思います。 ■ログの出力の記述方法 CakePHPのログ出力はlog関数を使います。以下のように記述をすると、 $this->log(__... 2015.08.12 2016.05.23 CakePHP2
CakePHP2 CakePHPでデバッグレベルが指定の時だけ分岐する デバッグレベルが指定の場合にのみ条件分岐をして処理する記述です。 例えば、debug = 0以外の時はGoogleAnalyticsのタグを出力しない。などの処理を書くことができます。開発中には必須ですね if( Configure::re... 2015.05.13 2016.05.23 CakePHP2
CakePHP2 CakePHPでredisをキャッシュサーバとして使う ■CakePHPのキャッシュ機構を使ってみる CakePHPにはデフォルトでキャッシュ機構がついています。どこか別のところに、一時的に情報を保存する場合などに非常に便利です。ランキングデータ等、DBに保存するまでもない様な情報を保持しておく... 2015.05.06 2016.05.23 CakePHP2