並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 141件

新着順 人気順

cakePHPの検索結果1 - 40 件 / 141件

  • [cakephp] Queryオブジェクトから実行したSQL生成 - Qiita

    フレームワークのクエリビルダでQueryを作って、データを取り出して実行!としたときに、期待した結果が得られないのは日常茶飯事です。そんなとき原因調査の一つとして、実際に実行されたSQLの確認することがあります。 今回はそんなときに使える「実行したQueryのオブジェクトからSQLを生成」する方法です。 SQLを取り出す(ただしバインド前) cakephpのAPIリファレンスを眺めていると、sql()という、まんまなメソッドが見つかります。 さあこれで一件落着、とはいきません。なぜなら、このメソッドで出力されるのは各種値がバインドされる前のSQLとなります。例えば以下のような感じです。 WHEREなどに指定した値が「:c0」のようなプレースホルダになっていて、実際に実行したSQLそのものではありません。 バインドを取り出す ならば、ということでバインドのデータを取り出します。getValu

      [cakephp] Queryオブジェクトから実行したSQL生成 - Qiita
    • Google reCAPTCHA を使いやすくする|加藤 正人|株式会社パルムゲート

      Google reCAPTCHA を使いやすくするヘルパーとコンポーネントを考えてみた。 ※Google reCAPTCHA を利用するには、Google アカウントで reCAPTCHA サービスにログインし、reCAPTCHA 用の公開鍵 (publick key) と秘密鍵 (private key) を取得する必要がある。 Google reCAPTCHA ヘルパー Google reCAPTCHA コンポーネント 利用方法 利用時はコンポーネントファイルとヘルパーファイルを適切な場所に配置し、コントローラで以下のように初期化する。(使用に際しては、コンポーネントおよびヘルパー宣言時の {your private key} と {your public key} の部分をそれぞれ実際の Google reCAPTCHA 用の秘密鍵と公開鍵で置換する。) ビュー側ではヘルパーとして以

        Google reCAPTCHA を使いやすくする|加藤 正人|株式会社パルムゲート
      • CakePHP2 Paginatorコンポーネント用いてvirtualFieldで定義したjoin先テーブルのカラムでソートをする方法。 - Qiita

        CakePHP2 Paginatorコンポーネント用いてvirtualFieldで定義したjoin先テーブルのカラムでソートをする方法。PHPCakePHPPaginator 少しはまったので、忘れない為のメモとして投稿。 paginatorコンポーネントを使用した一覧ページにて、virtualFieldで定義したjoin先のテーブルの カラムでソートをする際の記述方法。 Controller Model1にModel2をjoinしてModel1.idでGROUP BYし、Model1に紐づくjoin先のテーブルのidをカウントする記述。 $this->paginate('Model1')を行う前に前にバーチャルフィールドを定義する。 // join先のテーブルのカラムをcountするvirtualField $this->Model1->virtualFields['model2VFCo

          CakePHP2 Paginatorコンポーネント用いてvirtualFieldで定義したjoin先テーブルのカラムでソートをする方法。 - Qiita
        • Logrotateによるログ管理の改善(Rocky Linux8) - Qiita

          Logrotateの設定 Logrotateは、Linuxシステムで広く使用されているログファイルの管理ツールです。 サーバーやシステムが生成するログファイルは、時間の経過とともに大きくなり、ディスクスペースを圧迫することがあります。 Logrotateは、これらのログファイルを自動的にローテート、圧縮、削除、またはアーカイブすることで、ディスクスペースを効率的に使用できます。 OSやサービスの再起動は不要。 Logrotateの設定は、主に/etc/logrotate.confと/etc/logrotate.d/ディレクトリ内のファイルで行われます。 現在の設定内容(***はログファイル名) cat /etc/logrotate.d/*** /var/log/***.log { missingok ログが存在していなくても処理続行(エラーにしない) daily   1日周期で実行 cop

            Logrotateによるログ管理の改善(Rocky Linux8) - Qiita
          • 【CakePHP】ドラッグアンドドロップでリストの並び替え→DB保存 - Qiita

            はじめに cakephpでの実装ですが、ロジックは Laravelやphp以外の他の言語であっても応用できると思います。 記事一覧画面、並び替え画面、コントローラ、この3つのファイルを編集していきます。 大まかな流れとしては ①記事一覧画面で「並び替え」ボタンを押すことで並び替え画面に遷移。 ②ドラッグアンドドロップで好きな順番に並び替え ③「保存」ボタンを押すことで記事一覧画面に戻りつつ、並び替えられた状態。 です。 view 記事一覧画面 <tbody> <?php foreach ($article_list as $key => $article) ?> <tr id='<?php echo $key; ?>'> <td><?php echo $key+1; ?></td> <td><?php echo $article['Article']['id']; ?></td> <td

              【CakePHP】ドラッグアンドドロップでリストの並び替え→DB保存 - Qiita
            • CakePHPにIDE Helperを導入しIDE補完で開発効率を上げる⚡️【CI連携】 - Qiita

              こんにちは、みやがわです。 CakePHPで開発を行う上で必ず導入したいライブラリの一つである IDE Helper をご紹介します。 環境 CakePHP: 4.4.15 ( 3版もあります ) PHP: 8.1.20 IDE Helperとは IDE Helperとはその名の通りIDEやエディタを補助するためのプラグインで、主に補完の面でサポートします。 PHPの言語仕様に対応しているIDEでは最初からある程度の補完はされますが、扱うフレームワークがマジックメソッドを持っていたり特殊なインスタンス参照を行っている場合には適切な補完を表示することが出来ません。 CakePHPの場合、そういった補完を適切に表示するためにはクラスのPHPDocに対して @propertyタグを追加する必要があります。 例) $this→loadComponent() で読み込んだクラスの補完を効かせるために

                CakePHPにIDE Helperを導入しIDE補完で開発効率を上げる⚡️【CI連携】 - Qiita
              • CakePHP 4 で一部のコントローラを別フォルダに設置する方法 / Twin Turbo Computing

                はじめに CakePHP 4 は MVC モデルが採用されているフレームワークで、各種ファイルを格納するフォルダが明確にされています。 また CakePHP 4 には Ajax や Web API 用の機能も充実しているのですが、それらの機能も通常のアクションと同じように Controller に書きます。 例えば通常のアクションと Ajax 用アクションが共存するシステムの場合、コントローラの肥大化防止策としてファイル分割が考えられます。 しかし、次の悩みとして Controller フォルダ内のファイルが増えてしまい、作業効率が低下する可能性が出てきます。 そこで今日は CakePHP 4 で一部のコントローラを別のフォルダに設置する方法をご紹介します。 /src/Controller フォルダの移動ではなく、コントローラの一部を別フォルダに移動です。 動作確認に使用したのは Cake

                • 3.0 移行ガイド - 3.10

                  3.0 移行ガイド¶ このページには、CakePHP 2.x ブランチ以来にコアで起こった変更の参照だけではなく、 プロジェクトを 3.0 に移行するのに役立つ CakePHP 2.x からの変更をまとめました。 すべての新機能と API の変更については、このガイドの他のページを必ずお読みください。 必要条件¶ CakePHP 3.x は、PHP バージョン 5.4.16 以上をサポートしています。 CakePHP 3.x は、mbstring 拡張モジュールを必要とします。 CakePHP 3.x は、intl 拡張モジュールを必要とします。 アップグレードツール¶ このドキュメントで CakePHP 3.0 で行われたすべての重大な変更と改良をカバーするほかに、 時間のかかる一部の機械的修正を補助してくれるコンソールアプリケーションを作成しました。 あなたは github からのアッ

                  • CakePHP2→4の移行作業で意識している点 - Qiita

                    この記事はLancers(ランサーズ) Advent Calendar 2020 11日目のエントリーです。 はじめに ランサーズ株式会社に21卒入社予定でインターンをしている川原です。 現在、Lancersの管理画面のバージョンアップ作業を行っています。 CakePHP2.8→4のバージョンアップのための書き換えを行っているのですが、実際にソースコードを書き換えていく際に意識している(していこうと思う)点について書きます。 こちらの記事でCakePHP2→4バージョンアップについて紹介されています。 旧実装にひきずられないようにする コピペして終了、とならないのが移行作業です。実際にどのような手順を踏むかは以下です。 旧実装の仕様把握 バージョンアップ作業において、最初に認識するべきことは旧実装の仕様です。仕様を把握しないとそもそも書くことができません。 そのため、CakePHP2で書か

                      CakePHP2→4の移行作業で意識している点 - Qiita
                    • ざっくりcakephp2 vs cakephp4の違い - Qiita

                      はじめに CakePHPとはRuby on Railsの概念の多くを取り入れ、Rails流の高速開発とPHPの機動性を兼ね備えたPHPフレームワークです。 現在baserCMS5に向けてucmitzプロジェクトの開発に取り組んでいるのですが、cakephp2→cakephp4への移行にかけて大きな変化があったのでその問題についてざっくりまとめていこうと思います。 baserCMSを利用している場合こちらもcakephp2→cakephp4移行の参考になるのでチェックしてみてください 目次 共通の変更点 名前空間について 初期化について コントローラーの変更点 requestなどがget~/with~形式になっている AuthComponentがAuthenticationとAuthorizationに変更 セッションの変更点 ビューの変更点 id名の変更点 内部のオプションでidが自動で表

                        ざっくりcakephp2 vs cakephp4の違い - Qiita
                      • Cakephp4へのバージョンアップ - Qiita

                        //社内便利コンポーネントの呼び込み $components=array('CommonOriginal', array('model'=>'Work', 'index'=>array('hogehoge'・・・);////省略 public function edit($id=null){ //ログイン者の情報も必要なので取得。 $user = $this->Auth->user(); $status = $this->UserStatus->getXXStatus($user['id']); //データの取り出しJoinしまくり if($status==1){ // 省略 } $WorkCheck = $this->Work->findById($id); $data = $this->Work->find('all', array( 'fields'=>Hash::merge( $t

                          Cakephp4へのバージョンアップ - Qiita
                        • CakePHPでJSON Serverを使ってみた

                          皆さんこんにちは、システム部のアユシュマです。 今回はCakePHPでJSON Serverを使ってみたことについて書いていこうと思います。 JSON (JavaScript Object Notation) はサーバーとクライアントアプリケーション間のデータ交換に使用できる軽量のデータ形式で、シンプルで読みやすく、JavaScriptと簡単に統合できるため、現代のWeb開発標準となっています。JSONを使えば、開発者はスケーラビリティが高く、柔軟なウェブアプリケーションを迅速かつ容易に構築することができます。 そのJSONサーバーを構築するための最も強力なツールの1つに、RESTful APIを構築するためのビルド済みコンポーネントを多数提供する、PHPベースのMVCフレームワークCakePHPがあります。 今回は、CakePHPでJSON サーバーを利用するプロセスについてや、インスト

                            CakePHPでJSON Serverを使ってみた
                          • PHP8.1アップデートまでの道のり - コネヒト開発者ブログ

                            こんにちは。コネヒトでバックエンドエンジニアをしております@homiTakahashiです。 今回は私たちの使用している言語PHPの8.1バージョンまでアップデートについて話していけたらと思います。 前提として私たちのアップデートしたいプロジェクトは以下のような環境です。 PHP7.4 フレームワークはCakePHP4.2 dockerを使用 BaseImageはalpine そこでPHP8.1にする上でCakePHP4.2→4.3にバージョンを上げないといけないことが分かり段階を踏むように以下のように進めました。 作業手順 1. DockerImageを変更する PHPのバージョンを指定し、dockerでコンテナが安定して起動するようにエラー文を読みながら対応していきます。alpineのバージョンは古いとPHP8.1に対応していないのでバージョンを上げる必要がありました。 FROM al

                              PHP8.1アップデートまでの道のり - コネヒト開発者ブログ
                            • CakePHP 4.x に ParaTest を導入 - idubmorganのブログ

                              CakePHP 4.x に ParaTest を導入 テストの数が増えてきて全件テストを実行するのに時間がかかるようになった為、ParaTestを導入し、テストを並列実行するようにしてみました。 version CakePHP: 4.4.10 ParaTest: v6.9.1 PHPUnit: 9.6.7 ドキュメント https://github.com/paratestphp/paratest ParaTest PHPUnit でのテストを並列で実行できるツール 並列数(プロセス数)はオプションで指定できる テストクラス単位で並行実行される模様 環境変数 ParaTest に並列実行されるプロセスごとに1から始まる連番が設定される DB を利用したテストを並列実行する際は、TEST_TOKEN を利用して、各プロセス毎に利用するDBを分けるが必要がある Laravel 10.x の並列

                                CakePHP 4.x に ParaTest を導入 - idubmorganのブログ
                              • 【CakePHP3】特定のControllerだけCSRF保護を無効化する - Qiita

                                調べてみるとCsrfProtectionMiddlewareを全体的に無効化していたり、 ルーティング設定に混ぜ込んでいたりするものが多かったのですが 今回はそれ以外の方法で良さそうなものがあったので紹介します。 まずは結論から src/Application.phpでCsrfProtectionMiddlewareを whitelistCallbackメソッドでCSRF保護しないControllerを指定して読み込ませる。 バージョン CakaPHP 3.9.10 (CakaPHP 3.8系 でも使えると思います) ホワイトリスト登録 CakePHP4系だとCookBookに ホワイトリストコールバック機能を使用して、 CSRF トークンチェックを実行する URL をより詳細に制御できます。 とあって実装の仕方を見ても楽そうだったので、CakePHP3系でもできないかなーとコアファイルを

                                  【CakePHP3】特定のControllerだけCSRF保護を無効化する - Qiita
                                • [CakePHP1.2]モデルのテーブル名を動的に切り替える CodeLab(コードラボ)技術ブログ

                                  モデルで使用しているテーブル名を動的に切り替えるメソッド $this->Model->setSource(table_name); マージテーブルなどで年代別に複数のテーブルに分割している場合などで、特定のテーブルのデータを取得したいときに使えそうです。 $this->Model->useTable の中身も自動的に切り替わるので、これで元に戻そうとしてこれをセットしても戻りませんので注意。 また、コントローラーでModel::useTableを書き換えても駄目です。 モデル名、テーブル名が命名規約に添っていれば下記で元に戻ると思います。 $this->Model->setSource(inflector::tableize($this->Model->name));

                                    [CakePHP1.2]モデルのテーブル名を動的に切り替える CodeLab(コードラボ)技術ブログ
                                  • [Cakephp2→4]コントローラ編: Cake2と4間でSessionを共有する

                                    Cakephp4でセッションを書き込んだ後、Cake2側で読むことができない場合、「同じセッション名を指定しているか」ということを疑ってみてください。 ちなみに、POSTリクエスト時などに、セッションが消去されるなどの場合は、こちらの記事へどうぞ 例: 書き込んだセッションが読み込めない問題 ■ Cake4側 $this->getRequest()->getSession()->write('Hoge', $this->Auth->User('id')); $this->redirect($this->Auth->redirectUrl()); // TopPageController::index()へリダイレクト(Cake2側へ遷移すると仮定) で、セッションを書き込むのですが、その後Cake2側のアクションへ遷移する前にセッションが存在しない状態になっていた ■ Cake2側 $se

                                      [Cakephp2→4]コントローラ編: Cake2と4間でSessionを共有する
                                    • CakePHP4.4でErrorHandler (ConsoleErrorHandler)は非推奨

                                      この記事はコネヒトアドベントカレンダー2022の14日目の記事です。 コネヒトでは現在社内の各プロジェクトのPHPのバージョンを上げることを目標の一つとして設定しています。 それに伴い主に使用しているPHPフレームワークのCakePHPも同時並行でバージョンを上げていってます。 今回はPHPではなく現時点でのCakePHPの最新バージョンの4.4で非推奨になったErrorHandler(ConsoleErrorHandler)、そしてExceptionTrap と ErrorTrapが登場した経緯を少し紹介したいと思います。 この変更が行われた理由は下記のissueで詳しく説明されていますが、ざっくりと言うと下記の様な動機があるらしいです(英語に自信がないので詳しくはissueのリンクを貼っておくので詳しく知りたい方はそちらからどうぞ!) エラーハンドリングを担当するクラスと例外の描画を担

                                        CakePHP4.4でErrorHandler (ConsoleErrorHandler)は非推奨
                                      • 【CakePHP2.x】メンテナンスページを作成する方法 - とーますメモ

                                        今更だが、古いCakePHP2.x系のソースを修正する必要があり、 メンテナンスモードを簡単に実装するため、以下のプラグインを使用。 github.com ただ、TOPページはCakePHP3.x系のものっぽいので、 branchesをたどり、以下の2.x系のソースをダウンロードして使用する。 GitHub - fusic/maintenance at master ソースコード一式をダンロードし、解凍後のフォルダを「Maintenance」とリネームして app/Pluginに入れる。また自分の場合は、メンテナンス用のレイアウトも使用したかったため 以下のようにソースを修正または追加した。 [修正] app/Config/bootstrap.php <?php // メンテナンスモードプラグインの導入 CakePlugin::load('Maintenance'); // trueにする

                                          【CakePHP2.x】メンテナンスページを作成する方法 - とーますメモ
                                        • 項目の必須化をオンオフする方法

                                          カラムを通常使用では、notEmptyを使いたいが、編集時には、allowEmptyにしたいとする。 バリデーションルールを記述するとき、allowEmptyは先に書いたものが有効になるので、先に必須化のルール(allowEmpty => false)を書いて、後に空を許可するルール(allowEmpty => true)を書く。こうすると、項目は必須になるが、コントローラ内で、$validtor->remove()を使って、notEmptyを削除することで、動的に空を許可することができる。 先頭にnotEmptyを指定して、その次にallowEmpty、その後にそのほかのルールを書区必要がある。この順番にしないと、remove()を使用しても、項目が必ず必須化されてしまう。allowEmptyはルールセットの一番最初に書かないと有効にならない。2番目にallowEmptyが書いてあるとn

                                            項目の必須化をオンオフする方法
                                          • CakePHPの国際カンファレンス「CakeFest Virtual 2021」に登壇してきました! - コネヒト開発者ブログ

                                            こんにちは。CTOをやっている@itoshoです。コネヒトではここ1ヶ月でiOSDCやAWS Dev Day、PHPカンファレンス、PyCon JPと大きなカンファレンスへの登壇が続いています( ・∀・)イイ!! というわけで、僕も負けじ?と「CakeFest Virtual 2021」に登壇してきたのでその様子をお届けしたいと思います。 CakeFest Virtual 2021とは? CakeFestはPHPのフレームワークであるCakePHPの国際カンファレンスで、今年は昨年に引き続きオンラインで開催されました。構成としては初日にCakePHPのコアメンバーによるワークショップが開催され、2日目にカンファレンス形式で世界各国のエンジニアからの発表が行われました。 イベントの規模は、公式発表ではないので推測になりますが、2日目のカンファレンスは常時100人前後の方が参加していたと思いま

                                              CakePHPの国際カンファレンス「CakeFest Virtual 2021」に登壇してきました! - コネヒト開発者ブログ
                                            • CakePHPのController::redirectがhttpに飛ばすのでbeforeRedirectでhttpsに飛ぶようにしてみた - Qiita

                                              public function beforeRedirect(Event $event, $url, Response $response) { // httpsにリダイレクトするように設定 $response = $response->withLocation('https://' . $_SERVER["HTTP_HOST"] . Router::url($url)); return $response; } Controller.beforeRedirectのオーバーライドして Controller::redirectの動作に割り込みをかけます。 元のメソッドはreturn null; してるだけなので気にせず書き換えます。 $this->redirect(['controller' => 'Login', 'action' => 'index']); こんな感じで書くと元々http

                                                CakePHPのController::redirectがhttpに飛ばすのでbeforeRedirectでhttpsに飛ぶようにしてみた - Qiita
                                              • 【これで解決】SPAでセッション管理するならCookieにしよう【CakePHP4編】 | りゅうりんブログ

                                                XSSとCSRFの違い表 ■CORS(Cross-Origin Resource Sharing) 追加のHTTPヘッダーを使用して、あるオリジンで動作しているウェブアプリケーションに、異なるオリジンにある選択されたリソースへのアクセス権を与えるようブラウザーに指示するための仕組み。 サーバがブラウザに指示するというところがポイント。 ブラウザ側はCORS制約を検知するとエラーの挙動をとる。なのでPostmanのようにhttpリクエストを投げるようなツールはCORS制約を受けない。あくまでCORS制約を受ける場合においてはサーバ側からのレスポンスを読み取らせないというブラウザに備わる機能。 ※深堀り! CORS対策をブラウザがしているのであればCSRFトークンといった対策をサーバ側はする必要ない?と思ってしまうけど、そうじゃない。 先述したようにCORSはあくまでブラウザの挙動。CSRF対

                                                  【これで解決】SPAでセッション管理するならCookieにしよう【CakePHP4編】 | りゅうりんブログ
                                                • cakephp2 コア定義定数まとめ - Qiita

                                                  PHPのDIRECTORY_SEPARATORの省略語。 つまりLinux の場合は / Windows の場合は \ を指します。

                                                    cakephp2 コア定義定数まとめ - Qiita
                                                  • cake PHP3 条件付きルールを使用する | クロジカ

                                                    ホーム / ハック / cake PHP3 条件付きルールを使用する

                                                      cake PHP3 条件付きルールを使用する | クロジカ
                                                    • CakePHP Fixture Factories を導入しました - コネヒト開発者ブログ

                                                      こんにちは。プロダクト開発部の @su-kun1899 です。 今回はママリの CakePHP アプリケーションに Fixture Factories を導入した事例を紹介します。 Fixture Factories とは何か Fixture Factories は、モデルやデータベースに依存するテストコードにおいて、テーブルの作成やデータ初期化を行うためのプラグインです。 github.com CakePHP には元々 Fixture という仕組みが提供されていますが、 Fixture Factories はより柔軟に扱うことができます。 https://book.cakephp.org/4/en/development/testing.html#test-fixtures 導入したきっかけ アプリケーションの規模が大きくなり、機能が増えてくると、テーブル(モデル)ごとに一律データを管理

                                                        CakePHP Fixture Factories を導入しました - コネヒト開発者ブログ
                                                      • CakePHP 3.8 で 404 Not Found エラーを別ログに保存する方法 / Twin Turbo Computing

                                                        はじめに CakePHP 3 には標準でエラーログを保存する機能があり logs/debug.log や logs/error.log に保存されます。 これを監視することで不具合への早期対応も可能になります。 エラーログには 404 Not Found エラーも含まれます。Webサイトを公開すると phpmyadmin 等を狙った推測 URL へのアクセスが増えたりします。error.log にはそれも記載されるため、肥大化して必要な情報が見つけにくくなる場合があります。 そこで今日は CakePHP 3.8 で 404 Not Found エラーのログを別ファイルに保存する方法をご紹介します。 目次 app.php にログ設定を追加 独自の ErrorHandlerMiddleware を作成 Application.php で独自の Middleware 読み込み ログ記載内容の変更

                                                        • CakePHP3のChronosの機能紹介 - Qiita

                                                          CakePHP3のChronosの公式ドキュメントを翻訳したので、 その機能についてご紹介します。 以前の記事CakePHP3公式ドキュメントの翻訳が一石N鳥だった件でもご紹介しましたが、 私は「CakePHP3翻訳会」への参加を通じて翻訳を行なっていて、 その中のひとつとしてChronosを翻訳しました。 Chronosとは Chronosは、CakePHP3.2から導入された、日付時刻を扱うライブラリです。 公式のリリースには以下のように書いてあります。 Carbon ライブラリを Chronos に置き換え Carbon ライブラリは cakephp/chronos に置き換えられました。この新しいライブラリは Carbon のフォークで、依存関係は追加されていません。カレンダーのdateオブジェクト、イミュータブルなdateオブジェクトとdatetimeオブジェクトを提供します。

                                                            CakePHP3のChronosの機能紹介 - Qiita
                                                          • cakephp3 カスタムバリデーションを簡易的に実装する方法

                                                            CakePHP3のカスタムバリデーションの実装方法の一例 バリデーションファイルを作成する方が汎用性が高いルールとして設置できる CakePHP3では、あらかじめ用意されたバリデーションのルール以外のオリジナルのバリデーションを行いたい場合の方法がいくつか用意されています。 ブログなどでよく紹介されているのは、 /src/Model/Validation/CustomValidation.php ファイルを作成し、その中にバリデーションルールを作成して、それを呼び出す、というような方法です。 この方法は、汎用性が高く、複数のテーブルクラスで利用することができる有用な方法です。 ですが、今回は、他の処理では使わないであろう、と思われるバリデーションルールを、テーブルクラス内に簡単に記述する、という方法の紹介です。 テーブルファイル内に処理する関数も記述する方法 具体的には、下記の後半部分がオ

                                                              cakephp3 カスタムバリデーションを簡易的に実装する方法
                                                            • ようこそ - 3.10

                                                              ようこそ¶ CakePHP 3 は、 PHP 7.4 (最小は PHP 5.6) 上で動作するウェブ開発フレームワークです。 CakePHP 3 の基礎に入門するには CakePHP 概要 を読んでください。 CakePHP クックブックは、オープンに開発されている、コミュニティーで編集可能なドキュメントのプロジェクトです。 ドキュメンテーションの品質、正当性、正確性の高さを維持することを期待しています。 右端に固定された鉛筆アイコンボタンに注目してください。 このボタンは、あなたがドキュメンテーションの追加・削除・修正などの貢献が簡単にできるように、 該当ページの GitHub のオンラインエディターへ誘導します。 クックブックがどこででも読める どこでも CakePHP のレシピをお楽しみ頂けます。PDF と EPUB をご用意しましたので、 多くのデバイス上でオフラインでドキュメント

                                                              • 既存プロダクトのCakePHPのアップグレード戦略 - コネヒト開発者ブログ

                                                                既存プロダクトのCakePHPのアップグレード戦略 こんにちは。サーバーサイドエンジニアをやっている西中です。 花粉症に悩まされているので最近空気清浄機を購入しました。こころなしか症状が緩和している気がしています。 前回はCakePHP4.3にアップグレードする際に躓きがちなphpunitの変更ポイントをいくつか紹介させていただきました。 実はこのCakePHPのアップグレード対応は段階的に行っていました。 CakePHP段階的なアップグレード対応 私が携わっているこのプロダクトは2018年11月にリリースされました。 リリースした時点ではCakePHPのバージョンは3.6でした。 いきなりCakePHP3.xからCakePHP4に上げてしまうとアップグレード対応の差分が大きくなってしまい、対応に時間がかかってしまうという問題があるため、段階的にアップグレード対応しようという判断になりまし

                                                                  既存プロダクトのCakePHPのアップグレード戦略 - コネヒト開発者ブログ
                                                                • 「こんなところも?」 CakePHP4・phpunitのアップグレードに伴う変更箇所 - コネヒト開発者ブログ

                                                                  こんにちは! Webエンジニアをやっている西中と言います。 弊社では開発組織として運用しているサービスのフレームワークのアップグレード対応を定期的に行っています。 今回は私がCakePHP4.3対応をしていった中で躓いたポイントをいくつかピックアップしていきたいと思います。 CakePHP4.3にアップグレードするにあたって、phpunitのバージョンも8.0にアップグレードしました。 CakePHP4自体のアップグレード対応は一括で対応できるものが割と多い印象で、個人的にはphpunit周りの変更の方がインパクトが大きいのではないか…?と思っています。 assertArraySubsetが廃止!! Deprecate assertArraySubset() · Issue #3494 · sebastianbergmann/phpunit 正に衝撃! phpunit8で廃止、phpuni

                                                                    「こんなところも?」 CakePHP4・phpunitのアップグレードに伴う変更箇所 - コネヒト開発者ブログ
                                                                  • CakePHP4 で Fabricate を使ったテストを書く - Qiita

                                                                    資産価値の高いテストを書くためにFabricateを使い始めました この記事はとても共感出来る記事です。 開発作業の最初や途中で UnitTest を入れるぞっと盛り上がったときは、テストを書くのですが、後ほど負担になって UnitTest を実行しなくなるっというケースが多々あります。 (特にフェーズ1リリースが終わって、次の開発まで期間があく案件のケースで多発します。。。) 今後、良いテストを書くために CakePHP4 で Fabricate を導入する手順を残します。 この記事でわかること CakePHP4 へ Fabricate を導入する手順。 この記事内のソースは以下で公開しています。 https://github.com/katsuhiko/cakephp-vue-study 事前準備 CakePHP4 プロジェクトは以下の記事で作成して、Docker で動かしつつ、最低限

                                                                      CakePHP4 で Fabricate を使ったテストを書く - Qiita
                                                                    • CakePHP3でモデルを使わないページネーション

                                                                      デフォルトの PaginatorComponent ソースを読んでみた まずは、CakePHP3にデフォルトでバンドルされている PaginatorComponent を使って実現できないか調べました。ソースを読んでみたところ、デフォルトの PaginatorComponent でのページネーションは、モデルを使うことを前提としているっぽい…。深追いしてないんであまり自信ないですけど。 vendor/cakephp/cakephp/src/Controller/Component/PaginatorComponent.php namespace Cake\Controller\Component; // ... class PaginatorComponent extends Component // ... public function paginate($object, array

                                                                        CakePHP3でモデルを使わないページネーション
                                                                      • Migrations - 2.x

                                                                        Migrations¶ マイグレーションは、バージョン管理システムを使用して追跡することができる PHP ファイルを 記述することによって、あなたのデータベースのスキーマ変更を行うための、コアチームによって サポートされているプラグインです。 それはあなたが時間をかけてあなたのデータベーステーブルを進化させることができます。 スキーマ変更の SQL を書く代わりに、このプラグインでは、直観的にデータベースの変更を 実現するための手段を使用することができます。 このプラグインは、データベースマイグレーションライブラリーの Phinx のラッパーです。 インストール¶ 初期状態で Migrations は、デフォルトのアプリケーションの雛形と一緒にインストールされます。 もしあなたがそれを削除して再インストールしたい場合は、(composer.json ファイルが 配置されている)アプリケーシ

                                                                        • CakePHP3:特定のコントローラをBasic認証の対象外にする - thebakerのブログ

                                                                          とある開発においてSMSの送信をすることがあり、SMSの事業者からコールバックを受ける必要がでてきました。 開発環境でBASIC認証をかけているので、コールバックを受けるURLだけを開放したい。 だけどCakePHPでは.htaccessによってURLをrewriteしているので一筋縄ではいきません。 色々調べた結果、以下の記述で動くことがわかりました: <Location "/"> AuthType Basic AuthName "hogehoge" AuthUserFile /etc/httpd/conf/.htpasswd Require valid-user SetEnvIf Request_URI ^/Callback noauth=hoge Allow from env=REDIRECT_noauth Allow from env=noauth Order Deny,Allow

                                                                            CakePHP3:特定のコントローラをBasic認証の対象外にする - thebakerのブログ
                                                                          • CakePHP3から4へのバージョンアップ時に困ったキャッシュ周りの話 - コネヒト開発者ブログ

                                                                            こんにちは。バックエンドエンジニアのTOCです。 このエントリは、 コネヒト Advent Calendar 2021 の10日目のエントリです。 9日目は @otukutunさん による 洋書読み始めるならThe Minimalist Entrepreneurがオススメ でした。 弊社では多くのプロダクトで CakePHP を利用しております。エンジニア組織の取り組みで CakePHP のバージョンアップ対応を行ったのですが、リリース時に起こった困りごとについて、今回は紹介したいと思います。 目次 はじめに どんなことをやったのか リリースしてどうなった? 原因を調べる どう対応したのか リリース再挑戦とその後の対応 まとめ おまけ はじめに 弊社では半期ごとに目標を設定するのですが、各チームが持つ目標とは別にエンジニア組織としての目標も持ちます。この目標は開発組織をよりよくするための取

                                                                              CakePHP3から4へのバージョンアップ時に困ったキャッシュ周りの話 - コネヒト開発者ブログ
                                                                            • CakePHP の Authentication プラグインを使って、複数の Authenticator を有効にする - コネヒト開発者ブログ

                                                                              こんにちは!久々の登場となります @takoba_ です!! このエントリは、 コネヒト Advent Calendar 2021 の 8日目 のエントリです。 7日目は @shnagai による 異なるデータソース間の同期がしたくてAWS DMSについて調べたのでまとめてみた でした。 tech.connehito.com CakePHP の Authentication プラグインとは? CakePHP は CakePHP4 がリリースされるタイミングで、認可をする機能を cakephp/authorization プラグインに、認証をする機能を cakephp/authentication プラグインに分離しました*1。これらのプラグインは、実は PSR-7 に準拠した Middleware を提供する Composer パッケージになっていたりします。つまりは、 PHP 界隈にとっ

                                                                                CakePHP の Authentication プラグインを使って、複数の Authenticator を有効にする - コネヒト開発者ブログ
                                                                              • CakePHPのschemaからtypescriptのinterfaceを吐きだすプラグインをかいた - kaz29

                                                                                小ネタです。 最近は相変わらずCakePHPでAPIを書いて、nextjsでフロントのアプリを書くサイトばかり作っているのですが、API側で定義したAPIレスポンスデータをフロント側用にinterfaceを書くのがだるいのでプラグインを書いた話です。 TsExport plugin for CakePHP TsExport plugin for CakePHPは以下のようにインストールしてください。 composer require --dev kaz29/cakephp-ts-export-plugin 実行は以下のような感じ。 bin/cake export_entity --all または bin/cake export_entity モデル名 実際に実行すると、以下のようにinterface定義が標準出力に出力されます。 bin/cake export_entity Users /

                                                                                  CakePHPのschemaからtypescriptのinterfaceを吐きだすプラグインをかいた - kaz29
                                                                                • CakePHP2 から CakePHP4 への移行について (1) – iroha Tech Note

                                                                                  iroha Tech Note 備忘録です。HTML5/JS、Electron(旧Atom-Shell), NW.js(旧node-webkit)、Adobe AIR/Flex、標準化の話などを中心に、日々学んだことを書いていきます。 フレームワークのアップグレードは、しばしば開発者にとって頭の痛い問題となっています。今回は恐らく多くの組織で課題となっていると思われる CakePHP2 から CakePHP4 へ移行について取り上げてみたいと思います。 小規模かつCakePHP2版のソースのメンテナンスの継続を前提としたソフトウェアを移行対象としており、他のシステムの移行に対してはあまり参考にならない可能性があります。またビヘイビア、コンポーネント、ヘルパー、プラグイン、シェル、テストは移行対象としていません。記載しているコードは事前調査のために独自に作成したもので、動作を保証するものでは