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 のバージョンアップ対応を行ったのですが、リリース時に起こった困りごとについて、今回は紹介したいと思います。 目次 はじめに どんなことをやったのか リリースしてどうなった? 原因を調べる どう対応したのか リ…
はじめに 自己紹介 きっかけ とある案件のおおまかな内容 1. 概要 2. 主な作業内容 3. 作業環境・条件 つまずき コードの雰囲気はこんな感じ 理想 現実 感じた問題点 1. 変数名が不明瞭 2. if文のネストが深い 3. 無駄な変数定義 4. 変数の上書きが頻発 5. 複数の無駄なループ 6. ロジックが複雑 問題点を自分なりに修正 1. 変数をできるだけわかりやすく 2. if文のネストは極力避ける 3. 無駄な変数定義は使わない 4. 変数の上書きはしない 5. ループはデータをまとめた後に行う 6. ロジックは関数に切り分ける 振り返って 書くのは自分、全て自分の責任 FBCで…
この記事は株式会社カオナビ Advent Calendar 2024 シリーズ1の3日目の記事です。 概要 この記事では本日 2024/12/3(火)に発売の『TECHNICAL MASTER はじめてのPHP エンジニア入門編』という書籍について紹介します。書籍を執筆した経緯等に関しては、同じ株式会社カオナビ Advent Calendar 2024 のシリーズ2の2日目の記事として紹介しましたので、そちらを先に読んでおいていただけるとより内容がわかりやすいと思います。 今回お話する書籍は以下のもので、絶賛発売中です。よろしくお願いします!!! TECHNICAL MASTER はじめてのP…
みなさん、こんにちは。 iOSDC Japan 2024でも発表したforteeが発行するAppleウォレットのパスについて、パス情報の更新に対応しました。 参加者名の変更と、チケットのキャンセルが反映されます。 開発環境でのキャプチャ 実装できたら記事にまとめたいと宣言していたので、この記事ではAppleウォレットのパスの更新方法について解説します。 (「Appleウォレットとは?」「そもそもどうやれば保存できるの?」と疑問に思われた方は1つ目のリンクから遷移できるスライドをご覧ください) 概要 実装 開発環境の要件 パスの保存 パスの更新 パスの更新通知 更新パスの送信 新規保存時もリクエ…
Info フレームワークを、インストールしていないことが、前提です。 調べきれていないかもしれないので、鵜呑みにしないでください。 リライト記事です。 まえがき SymfonyのConsoleを使って、CLIツールを作っています。 ファイルを操作する必要があって、調べたことを、忘れないよう記事にしました。 使用環境 Name Component Version Symfony FileSystem 7.1.5 Laravel FileSystem 11.28.1 Spiral Files 3.14.5 本題 比較表 Symfony Laravel Spiral ① mirror copyDir…
一応は、ITエンジニアですので、ちょこちょこと技術ネタも書いていこうとは思います(笑)はてなブログや楽天市場、AmazonなどのECサイトもそうですが、HTML、CSSで画面デザインし、クレジット決済の処理やログインや購入履歴などを取得するデータベースとやり取りする部分の処理は、PHPというプログラミング言語で作られている事が多いです。また、laravelやCakePHPといったPHPのフレームワークがあります。フレームワークの説明は以下が参考になりますね。 aws.amazon.com このプログラムにバグがあった場合の事を考えてみてください。例えば、クレジット決済にバグがあった場合、致命的…
9月28日に、沖縄県は那覇市で行われたPHPカンファレンス沖縄2024に参加して来ました。 楽しかったし色々な刺激に元気をもらえたし、今回の遠征も素敵な時間を過ごせたな〜〜〜が一言目に飛び出してくる感想 😃 主催のカンボさん初め、スタッフの方々お疲れ様でした。ありがとうございました! それに素敵な発表を行っていた登壇者の皆さんや自分と交流してくれた皆さん、ありがとうございました〜〜 ということで #iwillblog !の記事です。 phpcon.okinawa.jp 自分の登壇について 参加の感想 PHPでTLS/SSLを実装してみた ドメインと向き合う - 旅行予約編 PHPでアクターモデ…
はじめに こんにちは、オシロ株式会社でリードエンジニアとして働いているにっく(webuilder240)と申します。オシロでは自社プロダクトとしてコミュニティ専用オウンドプラットフォーム「OSIRO」を提供していますが、私は2015年の開発開始から一人目エンジニアとして携わり、技術選定の意思決定を行ってきました。 今回は、そのなかでもRuby on Railsを選択した理由、 その学習に役立つOSSアプリケーションについて紹介したいと思います。この記事を読むことで、Railsの選定理由や実践的な学習方法について理解を深めていただければと思います。 はじめに Ruby on Railsの選択理由…
自己紹介 エンジニアとしての経験は約25年になります。最初の10年ほどはSIer業界でWindows系や.NET系の開発を専門にしておりましたが、最近15年ほどはWeb業界の自社開発企業界隈でLinux系のバックエンド開発およびクラウドインフラ周りの設計/構築業務に携わっております。 ここ数年はクラウドのインフラエンジニアとしてサービスの新規開発フェーズやインフラのリプレイスフェーズに参画させていただくことが多いです。最近の業務経験に関しては下記のレジュメにまとめておりますのでご参照いただければと思います。 github.com エンジニアとしての抽象的な強みは下記になります。 幅広い知見と経…
はじめに この記事は、2024年7月に私が何をやっていたのかを振り返る記事です。 毎月振り返り記事を書くことで、今後のキャリアをより良くしていきたいという趣旨です! もしみなさまの参考になる部分があれば幸いです。 やったこと 引き継ぎ 7月末で現職を退任するので、後任の方に業務を引き継ぎました。 具体的には、以下のように行いました。 運用マニュアルを作成し、口頭で補足した コードに関する説明を実施 各種ファイル類の格納場所を伝えた コミュニケーションを綿密にとっていたおかげで、7月後半はもうほぼひとり立ち状態で運用をお任せしていました! 優秀な方が後任になってくれて助かりました! 転職活動を終…
CakePHPのBakeみたいなやつですね。php artisanでモデルを作っても中身は空っぽなわけですが、中身があるやつが、laravel-generatorですね。AIがあるので必要性は下がっているかもしれませんが、jsonファイルでよい感じにスキーマを指定したら、migrationファイル、モデルファイル、そしてコントローラ、Viewファイルまでとりあえず作ってくれるので、LLMにお願いすることが減ってよいかなと思っております。 環境 windows11, PowerShellです。PHP8.3, Laravel10.48.17, Node22です。 インストール infyom.com…
はじめに こんにちは! 2024年4月から約三ヶ月間、株式会社ハウテレビジョンでエンジニアとしてインターンをしている@soma_takataです。普段は個人開発や長期インターンシップでWebアプリケーションの開発を行っています。 今回は、「こんなに成長してもいいんですか!」と自分が思えるほど充実していたインターンについて、具体的な経験をお伝えします。 株式会社ハウテレビジョンのインターンに興味を持っている皆さんに、少しでも参考になればと思います。 インターンで何をしたのか 私がインターンで主に取り組んだプロジェクトは、外資就活ドットコムに関わる基幹システムのリプレイスです。 具体的には、バック…
はじめに ありがたいことに、Webエンジニアになって2年と少しが経ちました。 初めの頃はバックエンドを中心に業務を行っていましたが、徐々にフロントエンドの面からもプロダクトの改善を進めていくことが増えました。 今回は、フロントエンドの入門として、フロントエンドの歴史を整理していきたいと思います。 フロントエンドの歴史 私自身のエンジニア歴がWebの発展の歴史と比べるとはるかに短いため、歴史的な背景については詳しくはありません。 なので、先人の知恵を借りて、フロントエンドの歴史を整理していきたいと思います。 対象はWebが発達し始めた90年代末から2000年代初頭のクラシックSSRの時代から、S…
物価高騰で今後、家計が火の車になる可能性があるので、副業できるように、まずはアウトプット始めようかと思い立ちました。 自分の経歴をざっくりまとめました。 ※記載内容は2024年時点のものであり最新情報とは限りません。 職務経歴書 スキル 経験言語 PHP、Ruby、Python、Java(苦手)、Perl、C++(少し)、Go、JS Rustなど フレームワーク、Middleware、クラウド CakePHP,Laravel、Seaser2、axum apache、nginx AWS MySQL、Oracle、PostgresSQL、Redis、mdbm CentOS、RockyLinux そ…
こんにちは、エンジニアの安達です。 今回は弊社におけるレスポンスタイム改善について、お話しします。 なぜレスポンスタイム改善を行ったのか 弊社は半期ごとにエンジニア組織の目標を設定しており、期中に達成したいことを全員で話し合って決めています。 話し合いの中で、サービスの成長に伴い既存機能のレスポンスタイムが悪化しているものの、なかなか改善の時間を取れていないことが課題として挙がりました。そこで、ECサイトの購入フロー・倉庫管理システムの出荷機能など、お客様の体験に関わる重要な機能のレスポンスタイム改善に取り組むことにしました。 どのように進めたのか エンジニアを2チームに分け、チームごとに改善…
G社に買収されたその会社を辞めることになって、そのあたりで確かMIXIのオフ会か何かがあったような気がする。メガバンクに障碍者雇用されている男性と、人材紹介業の営業の女性とで渋谷のハチ公前あたりで会って、あのへんの喫茶店で話をした。私ははじめから泥酔状態だった。なぜか私は、渋谷では泥酔している思い出が多い気がした。トイレか何かで席を立って戻ってきたら、人材紹介業の営業の女性はもう帰るところだった。残された男性と二人でナンパでもしてカラオケにいこうとしたが、当然むりであった。そんなこんなでうやむやに解散した気がする。 とんでもないダメさだった。けれどあの頃はまだ心のどこかでまだ自分を信じていたよ…