public $virtualFields = array( 'detail_name' => 'TestDetail.name', );
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
カラムを通常使用では、notEmptyを使いたいが、編集時には、allowEmptyにしたいとする。 バリデーションルールを記述するとき、allowEmptyは先に書いたものが有効になるので、先に必須化のルール(allowEmpty => false)を書いて、後に空を許可するルール(allowEmpty => true)を書く。こうすると、項目は必須になるが、コントローラ内で、$validtor->remove()を使って、notEmptyを削除することで、動的に空を許可することができる。 先頭にnotEmptyを指定して、その次にallowEmpty、その後にそのほかのルールを書区必要がある。この順番にしないと、remove()を使用しても、項目が必ず必須化されてしまう。allowEmptyはルールセットの一番最初に書かないと有効にならない。2番目にallowEmptyが書いてあるとn
Dockerを用いて CakePHP3 の実行環境を簡単に構築したいと思います。 ※ CakePHP3 はウェブ開発を簡単に行うためのフレームワークです。 詳しくは公式ドキュメントをご覧ください。 https://book.cakephp.org/3.0/en/index.html 今回は、こちらの記事 (https://qiita.com/motty93/items/ccdaf130443a8334bd93) を参考にさせていただきました。 非常に良い記事でCakePHP3の実行環境を作成できたのですが、僕が一部詰まってしまった部分 (intlのインストール) があったので、その部分もスムーズに進められるようにアレンジさせていただきました。 github上で公開しています。(実は自作のリポジトリはこれが初めてです。。。) https://github.com/km42428/docker
最近は久々にガッツリPHPのコードを書いているわたなべです。 このところ、仕事でもプライベートでもPHPでAPIを書いて、Next.jsでフロントのWebアプリを書くことがほとんどです。 この場合API仕様は以前ブログにも書きましたが、swagger-phpのアノテーションで記述して、Swagger-UIで参照できる様にしています。 kaz29.hatenablog.com Swagger-UI と swagger-php 最近は使われている方も多いと思いますが、簡単に説明すると、EntityとControllerに以下の様なアノテーションを記述します。 Entity/Article.php /** * Article Entity * * @OA\Schema( * schema="Article", * title="", * description="Article entity",
CakePHPのDICいれよーぜPRがマージされとった🎉🎉 (タイミング的にcakefestに間に合わせたかな?) ちゃんと内容追うぞーーー Add a dependency injection container by markstory · Pull Request #14945 · cakephp/cakephphttps://t.co/GSgNp1WBNR— 今日も誰かのにちようび(おいしい鮭親子丼) (@o0h_) 2020年10月1日 ということがありまして、20201005現在で「4.next」に取り込まれているスティタスです! ※ 現行の4.1のパッチバージョンについてはmasterに向けられるので、 4.nextは「次のマイナーバージョン」である4.2を指します 「CakePHPにDIコンテナが入ったらどんな感じに使われるんだろう?」というのは個人的にかねてより興味範
本記事は CakePHP Advent Calendar 2019 の19日目のエントリーになります。 はじめに 先日、待ちに待ったCakePHP4.0.0が 正式リリース されましたね そして、気が早いのですが4.0系がリリースされたということは、次の大きなアップデートは4.1系のリリースということになります。(本当に気が早くてごめんなさい) そんなこともあり早速 4.1のロードマップ をチラ見してみたのですが Application の欄に以下のような記述があり、何やら面白そうな変化が起きそうだなと感じました。 Experimental support for PSR11 compliant dependency injection container. Potential libraries that we could use are: phpleague/container - h
Product Dev Divisionの川島(@nazonohito51)です。 BASEでは創業当時よりCakePHPによるWebアプリケーション開発を行っており、同時にそのテストも充実させてきました。ですがその過程で気づくのは、CakePHP標準の仕組みだけではテストを増やせば増やすほどテストデータの管理が難しくなり、テストをメンテナンスするのが困難になる問題でした。きちんと長期的にサービスを良くしてくれる資産価値の高いテストが書けるように、今回はその問題と向き合い、解決するために@sizuhikoさんの開発されたFabricateというライブラリを導入したお話を書かせていただこうかと思います。 BASEの直面した課題 CakePHP2のFixtureという仕組み 詳細は公式ページを参照していただきたいのですが、CakePHP2にはテストデータを作るためのFixtureという仕組みが
SREチームの金澤です。 PHP5.6→7.3バージョンアップが完了しました。 PHP5.3→5.6バージョンアップが完了してから約2カ月での移行となりました。 今回、その対応内容と結果を報告したいと思います。 バージョンアップ準備 PHP7化については、有用な記事が数多くありましたので、まずはそれらを参考にさせていただきました。 CakePHP2.10化 PHP5.6化後のライブラリアップデートのタイミングでCakePHP 2.8から2.10にバージョンアップしました。 CakePHP2.9のタイミングでObjectクラスが非推奨になったため、CakeObjectに名前変更しました。 ※PHP7ではObjectが予約語になります。 廃止、非推奨となる関数の対応 対応が必要だったのは主に以下の関数です。 __autoload ereg_* eregi each mysql_* split
GWいかがでしたでしょうか? 私はひたすらに「何もしないぞ!」を徹底した結果、漫画を読んで「色々な世界を旅して」「色々な出会いと別れを繰り返して」過ごしました。 その中でも、「子供はわかってあげない」を久しぶりに読み返し、 人は教わったことなら教えられるんだよ からの 僕は誰にも教わってないんだ。・・・だから教えるのが難しいの当たり前なんだなって思って・・・少し楽になったかな というくだりにグッと来ました。 「教えられることがある」や「教えてくれる」というのは、それだけで尊いものだな〜というリスペクトを忘れないようにしようと思うのと同時に、自分や他人の「持てるもの・持てないものを見極めて、許したり奮ったりしてけたらな」とも思いました。 なんにせよ、他人に教えられる人はすごい!🎉 子供はわかってあげない(上) (モーニング KC) さて、こんにちは、サーバーサイドやっております 金城 (@
このたび生まれて初めて本を出版することになりました! 『TECHNICAL MASTER はじめてのPHPプロフェッショナル開発 PHP7対応』というタイトル(以下、プロフェッショナル本)で2019年2月26日(火)に秀和システムさんから発売されます。 会社の同僚と書いたので、是非買ってください!(石直球) しかし「せっかく買ったのに思ってたんと全然違うやんけ!」となるのも申し訳ないので、プロフェッショナル本がどういう本なのか簡単に紹介したいと思います。 プロフェッショナル本の概要 一言で言うと プログラミングの入門書を読み終えた人が、実際の開発現場で活躍するために必要なアレコレをPHPを題材に解説している本 です。ボリュームは実質390ページほどになります。中身は導入編、入門編、実践編、発展編の4つのパートで構成されています。 最初の導入編では昨今のPHPとそれを取り巻くエコシステムを紹
梅雨のジメジメにめっぽう弱い kagata です。 今回は表題のとおり CakePHP3 のテーブルオブジェクトからスキーマ情報を参照していろいろやる方法をご紹介します。Cake3 のモデル周辺は、べんりな道具が本当に充実していますよね。 例題1:入力データの null を空文字列に置き換える 例えば、データベースに次のようなテーブルがあるとします。 CREATE TABLE `posts` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `subject` varchar(255) NOT NULL, `body` text NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, PRIMARY KEY (`id`) ) null を撲滅するため、どのカラムにも n
Swaggerは、REST APIの仕様とそれに関連するツール群の総称です。REST APIの仕様を定義したJSONファイル(Swagger Spec)を軸に以下のようなツールから構成されています。 Swagger UI - Swagger Spec から動的にAPIドキュメントを生成するツール Swagger Editor - Swagger Specのエディタ Swagger Codegen - Swagger Specからクライアントのコードを生成するツール 最近では、Open API InitiativeがAPIの記述のためにSwaggerを採用して話題になりました。 www.publickey1.jp APIドキュメントのメンテは結構面倒 一般的にAPIの仕様書は、古くはExcel/Wordなどを使ったり、最近ではWikiやMarkdown形式で記述したりなどプロジェクトによって
PHP 2大 web フレームワークの徹底比較!1. PHP 2大 web フレームワークの 徹底比較! サポーターズ勉強会@株式会社ウィルゲート Room0 2. 池添 誠(いけぞえ まこと) • 開発グループ コンテンツユニット所属 • 2015年にウィルゲートに新卒入社(3年目) • クラウドソーシングサービスのサグーワークスの開発 • 今日は CakePHP 担当 2 自己紹介 3. 池添 誠(いけぞえ まこと) • 開発グループ コンテンツユニット所属 • 2015年にウィルゲートに新卒入社(3年目) • クラウドソーシングサービスのサグーワークスの開発 • 今日は CakePHP 担当 3 自己紹介 テストコード いいぞ 4. 岡田 正平(おかだ しょうへい) • 開発グループ ソリューションユニット所属 • 2015年にウィルゲートに新卒入社(3年目) • webコンサルティ
今回jsonを返すapiを用意した。前にこのブログでも記事を書いたことがある。 www.aipacommander.com <?php ... echo json_encode([]); return; // returnはいらないけど、強制でactionの処理を終了したいときにあわせて使う これでいいと思い実装していたのだが、↓のエラーがでてきた。 このエラーと Unable to emit headers. Headers sent in file=... line=xxx このエラーである。 Cannot modify header information - headers already sent by ${something php file name}. 発生源はここ ~/vendor/cakephp/cakephp/src/Http/ResponseEmitter.php:
dockerを用いて一瞬でCakePHP環境を構築したいと思います。 今回はこちらの記事 (http://qiita.com/nmatayoshi/items/e7f34e1e220264131934) を参考にさせていただきました。 ありがとうございます! 動作環境 OSX EI Capitan 10.11.6 Docker version 17.03.0-ce mysql Ver 14.14 Distrib 5.7.17(ローカル) dockerを使って構築 dockerがインストールされている、かつmac環境前提で進めていきます。 win環境の方はすみません、参考程度にしてください。 一つずつコンテナを立てていってもいいんですが、面倒臭いし順番を間違えたらいろいろとトラブルの原因になります。 今回はGithubで公開されているDockerfileを元に書いたdocker-compos
Deploying your CakePHP applications in production using Docker More and more PHP developers finding the way using containers in their dev and test workflow. It was about time to write a small piece how to deploy a PHP application on Cloud 66 for Docker. For this blog post I'm going to focus on a CakePHP based PHP applications and the composer package manager. Let's assume you have beautifully craf
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く