PHPで記述されたwebアプリケーションフレームワーク。 Ruby on Railsの影響を受けている。 1.x系に対応するPHPのバージョンは4または5。 2.x系はPHP5への最適化を図るため、PHP4への対応が打ち切られるとともに、例外処理、テスト、命名規則など大幅な改修がなされた。 2013年1月15日現在の最新版は2.2.4、対応するPHPのバージョンは5.2.8以上である。
Controllerでテンプレートを指定します。 これだと、元のテンプレートディレクトリを削除すると、たどれなくなって、エラーになりました。 $this->viewBuilder()->setTemplate('../CommonData/index'); setTemplatePathとsetTemplateに分けると、うまくいきました。 $this->viewBuilder()->setTemplatePath('Admin/CommonData')->setTemplate('index');
別システムからテーブル定義を移植します。 migrationファイルを手書きするのは大変です。 dumpファイルから作成したいと思います。 テーブルのインポート前に、lockファイルを、最新状態にします https://book.cakephp.org/migrations/3/ja/index.html#schema-lock docker compose exec php bin/cake migrations dump dumpファイルからテーブルをインポート migrationファイルを作成 docker compose exec php ./bin/cake bake migrati…
こんにちは、MLBお兄さんこと松村です。 前回の記事で30-60 (30HR&60盗塁)を記録したと紹介したRonald Acuña Jr 選手ですが、なんと40-70 (40HR&70盗塁)を達成しました。本当に素晴らしい成績です。 2023年9月10日に CakePHP 5 がリリースされました。約4年ぶりのメジャーバージョンアップとなります。 cakephp.org CakePHP は好きなフレームワークの1つでもあり、これを Azure Web App にデプロイする手順を整理したので記事にまとめます。 サンプルアプリの準備 まずはデプロイするための CakePHP アプリケーションを…
はじめに 今「あすけん」は大きなチャレンジをしています。 中長期的なサービスの成長を見据えて、アーキテクチャの見直しとシステムの再設計を行っています。 この再設計の一環として、PHPで構築された既存システムをKotlinを用いた新システムに置き換えるという大きな決断をしました。 さらに、より保守性の高いシステムを目指して、新しい手法も試しています。 具体的には「RDRA」「ICONIX」「ドメイン駆動設計」の考え方を取り入れて再設計を行っています。 今はまだ技術検証の段階ですが、一部の機能の分析・モデリングを行ってコードに落とし込んでいます。 課題も毎日のように見つかっています。しかし、日々解…
弊社で毎月開催し、PHPエンジニアの間でご好評をいただいているPHP TechCafe。 2022年11月のイベントでは「PHPフレームワーク」について語り合いました。 弊社メンバーがピックアップしたPHPの代表的なフレームワーク4種について、以下のShowNoteをベースに、参加者の皆様のご意見も伺いながら学んでいきました。今回はその内容についてレポートします。 rakus.connpass.com hackmd.io フレームワークとは 代表的なPHPフレームワーク Laravel Symfony CakePHP Slim 機能比較 ルーティング Laravel Symfony CakeP…
以前、hasMany の Association を contain すると 別SQL になるという内容の記事を書きました 今回は、どのような仕組みで別SQLになるのか、コアのコードを追ってみました version CakePHP: 4.2.8 仕組み \Cake\ORM\EagerLoader::loadExternal によって、別SQLになる Decorates the passed statement object in order to inject data from associations that cannot be joined directly. 別SQLになるアソシエー…
こんにちは!webエンジニアの高谷です。 弊社ではCakePHPなどの社内のプロジェクトで使われているフレームワークやライブラリのアップデートを定期的に行っています。 その一環でママリのアプリ内で使用されているwebviewのCakePHPを3.8から4.0にアップデートした際に、使用しているPHPStanのバージョンが0.11とかなり古めだったのでこちらも1.4にメジャーアップデートしました。 今回はPHPStanを中心にアップデートした際の変更点をいくつかピックアップしていきたいと思います。 はじめに PHPStan1.0のリリース PHPStanは最初のリリース(2016年7月)から長ら…
こんにちは。 @otukutunです。 今回とあるキャンペーンサイトでGoogle オプティマイズのリダイレクトテストとCakePHPを連携して、すばやくABテストできる仕組みを構築したのでその方法について説明します。 Google オプティマイズとは Google オプティマイズはGoogleが提供しているABテストツールで、無料で提供されています(2022/03/11時点)。Google製ということもあり、Googleアナリティクス連携がスムーズにできる使い勝手のよいツールです。Google オプティマイズには様々なテスト方法が提供されていて、A/B テストやサーバーサイドテスト、リダイレ…
DBのデータ型 から PHPの型(Entityのpropertyの型) への変換 \Cake\Database\Type 以下の Class の toPHP メソッドで行われる 例 \Cake\Database\Type\StringType::toPHP` 一覧 \Cake\Database\TypeFactory::$_types PHPの型(Entityのpropertyの型) から DBのデータ型 への変換 \Cake\Database\Type 以下の Class の toDatabase メソッドで行われる 例 \Cake\Database\Type\StringType::toP…
こんにちは。バックエンドエンジニアのTOCです。 このエントリは、 コネヒト Advent Calendar 2021 の10日目のエントリです。 9日目は @otukutunさん による 洋書読み始めるならThe Minimalist Entrepreneurがオススメ でした。 弊社では多くのプロダクトで CakePHP を利用しております。エンジニア組織の取り組みで CakePHP のバージョンアップ対応を行ったのですが、リリース時に起こった困りごとについて、今回は紹介したいと思います。 目次 はじめに どんなことをやったのか リリースしてどうなった? 原因を調べる どう対応したのか リ…
はじめに エンジニアとしてのキャリアをスタートしたばかりの方が、ジュニアレベルやミドルレベルのエンジニアとして活躍するために必要なスキルや知識について考えてみます。 この記事はWEB領域のエンジニアを対象としています。 前提 前提として、私の知っている範囲のことしか書けませんが、弊社スマレジのエンジニアとして活躍できるレベルを目標としています。 スマレジでは、バックエンド、フロントエンドの領域で担当が分かれておらず、どちらも担当します。 インフラについては専属のチームがありますが、プロダクトを担当しているエンジニアと相談しながらインフラ設計が行われることが多く、インフラについての知識がなくても…
CakePHP 5.x で新しいアプリケーションを開発して、いざ本番環境に初めてdeployしたところ、以下のようなエラーに遭遇しました。error: [Cake\ORM\Exception\MissingTableClassException] Table class for alias `{テーブル名}` could not be foundこの記事は、このエラーの原因のうち、筆者が遭遇したものについてのメモです。 長いので3行まとめ Macのデフォルトのような case-insensitive なボリュームで開発されたコードは、case-sensitive 環境では動作しないことがある(…
2024/02/11に開催された、PHPカンファレンス関西2024に参加しました。 【非公式!前夜祭】 PHPカンファレンス関西2024 - connpassから含めて参加し、またカンファレンス翌日に行われた PHP Lovers Meetup vol.4 + OSS Gate in 関西 - connpassにも途中まで参加して、2泊3日の大阪滞在でした。 た〜〜〜〜〜のしかった!!!!という気持ちでいっぱいなのと、とても元気をもらえて勇気づけられて気合が入った時間になったと感じています。 めちゃくちゃ良い時間だったので、スタッフの皆さん、一緒に場を創ったり、個人的に交流させていただいた参加…
はじめに 外資就活開発チームでソフトウェアエンジニアをしている根本です。 今回は、外資就活プロダクトエンジニアリングチームの開発フローにトランクベース開発を導入する際の課題解決についてまとめます。 はじめに リプレイスの概要 アプリケーション構成 featureブランチの生存期間が長い問題 トランクベース開発 リプレイスとNext.jsの複合的課題 解決策の検討 1. Feature Flagの導入 2. Next.jsでリダイレクトを行う 結論 参考になった資料 リプレイスの概要 現在、CakePHPからNext.jsとGoへのリプレイスに注力しています。 アプリケーション構成 以下の図がア…
p.line { border-bottom: 2px solid black; font-size:25px; } .boxoutline { padding: 0.5em 1em; margin: 2em 0; border: dashed 2px #d3d3d3;/*点線*/ } .boxoutline p { margin: 0; padding: 0; } .boxself { padding: 0.5em 1em; margin: 2em 0; color: #2c2c2f; background: #fff0f5;/*背景色*/ } .boxself p { margin: 0;…
1月12日〜13日に開催されたPHPカンファレンス北海道2024(以下、ぺちこん北海道)に参加しました。 ぺちこん北海道、最高でしたね〜 day0 (1/12) day1 本編 (1/13) 見た発表(と一言感想) day2? (1/14) day3? (1/15) まとめ day0 (1/12) ぺちこん北海道自体は金曜日から前夜祭があったのですが、業務の都合で仕事が終わってから北海道に向かうスケジュールでした。 楽しそうにしてるPHPerの様子を見ながら「あと少しで北海道にいけるんだ・・・」と羨ましい気持ちを堪え、仕事を終わらせ羽田に。 が、雪の影響で飛行機が飛ぶか怪しい雲行きに・・・ 仕…
今回はこちらを使ってみた。 github.com ベースはAdminLTE。 それをCakePHPで使いやすいようにしてくれたもの。 実装手順 Githubのドキュメント通り行った。 指定されたファイルを置き換え、移植するところはCakePHPのフォルダ構成と同じ箇所に行えばOK。 発生したエラー 以下のエラーが発生した。 osa.hatenablog.com ローカルで試したときは起きなかったのに、EC2で確認しようとしたら起きたエラー。 こういう時は大体nginx絡みか権限絡み。 nginxではファイルのサイズが大きい時にバッファで一時ファイルに読み込むらしい(バッファがあまり分かっていな…
DBインスタンスの作成に関してはこちらを参考にした。 docs.aws.amazon.com ただし、DBを暗号化するとKMSが作成されてしまうことに注意。KMSは存在するだけでお金がかかる。(被害済) 私の場合はWebサーバーはnginxなのでDBインスタンス作成以降は関係なし。 EC2にmysqlをインストール 上記で諸々のセットアップをしたあと、以下のコマンドでmysqlクライアントをインストール。 yum install -y mysql 調べてるとmysqldとか、mysql-serverとか色々出てくるんだけど、今回は関係ないみたい。 mysqlに接続して、操作できるソフトだけをイ…
EC2を起動 ここは問題なし。 キーペアは作成か、選択しておくと楽。 EC2へSSH接続 私のPCはwindowsなのでOpenSSHを使って接続する必要がある。 以下を参考にした。 OpenSSH を使用して Windows から Linux インスタンスに接続する - Amazon Elastic Compute Cloud 自分の場合はOpenSSHにパスが通ってなかったので、インストール場所を確認して、パスを通した。 インスタンスの起動時、大事なことはEC2起動時にキーを作成するか、選択すること。 .pemの形式で今回はキーペアを作成した。 これが自動的に自分のPCにDLされる。 これ…
大晦日ですね。例によって今年の成果物のまとめを晒しておきたいと思います。過去記事はこちら。 2022年版 : 2022年の成果物まとめ - 職業プログラマの休日出勤 2021年版 : 2021年の成果物まとめ - 職業プログラマの休日出勤 2020年版 : 2020年の成果物まとめ - 職業プログラマの休日出勤 2019年版:2019年の成果物まとめ - 職業プログラマの休日出勤 2018年版:2018年の成果物まとめ - 職業プログラマの休日出勤 2017年版 : 2017年の成果物まとめ - 職業プログラマの休日出勤 2016年版 : 2016年、作ったものまとめ。 - 職業プログラマの休…
2023年ももうすぐ終わりますね。私も無事か無事でないか、仕事を納めることができました。 明日から奥さんの実家に行って温泉を堪能してくるので、2023年に会社で書いた記事をまとめておきます。 # 月 タイトル 1 2023/02 azcopyでAzure BLOBからAzure Filesへのファイルコピーを行う - Alternative Architecture DOJO 2 2023/02 インポートしたWSL2ディストリビューションの既定ユーザーを指定する - Alternative Architecture DOJO 3 2023/03 Visual StudioでGitHub Co…
こんにちは、コバヤシです。 今回は、2023のPHPフレームワークのトレンド比較を元に、2024年のトレンドを予測してみたいと思います。 以前のトレンド比較はこちら tech.arms-soft.co.jp tech.arms-soft.co.jp 期間は5年間、比較するフレームワークは以下のものにします。 Laravel CakePHP Laminas(Zend Framework) Symfony CodeIgniter トレンド比較【すべての国】 ! 圧倒的にLaravelが高いトレンドを維持していますね。これは前回の調査の時から変わっていないようです。2番手にはLaminasが来ており…
Cakephpって、フォームの送信方法が2パターンあるので、どちらも確認。 View Controller View 送信結果 しっかり、データが送信されることを確認
【Cakephp】フレームワークを使ってWebアプリを開発してみようと思います。 以前開発した、「イベコネ」をCakephpで開発してみます。 デザイン用のcssを追加 「webroot/css/stylesheet.css」にcssを追加 「default.php」でstylesheet.cssを呼び出しでアプリのデザインを利用できるようになりました。 ヘッダーとフッターを作成 「layout/default.php」が共通のHTML・CSSを設定できる場所なので、ここにヘッダーとフッターを作成 トップへの移動機能を追加 「webroot/js/javascript.js」にjavascip…