PHPで記述されたwebアプリケーションフレームワーク。 Ruby on Railsの影響を受けている。 1.x系に対応するPHPのバージョンは4または5。 2.x系はPHP5への最適化を図るため、PHP4への対応が打ち切られるとともに、例外処理、テスト、命名規則など大幅な改修がなされた。 2013年1月15日現在の最新版は2.2.4、対応するPHPのバージョンは5.2.8以上である。
こんにちは、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…
CakePHPの例外処理は、ユニットテストでテスト可能です。 例えば、テストコードは以下のようになります。 testServiceClassTest.php <?php < 中略 > public function test_dummy() { $this->setExpectedExceptionRegExp('CakeException', '/テストの例外メッセージです。/'); $service = new testServiceClass(); $service->dummy(); } 実際の処理内容は以下の通りです。 testServiceClass.php <?php publi…
CakePHP CakePHPでフォームを実装する場合、Formヘルパーを使用することが多いと思います。 book.cakephp.org このFormヘルパーで数値フォームを実装する際に、入力値の桁数を制限したい、というのが今回の趣旨です。 (環境はCakePHP4系を想定していますが、他のバージョンでも同様に動作すると思います) 文字列のフォームであればmaxlength属性を追加してやればそれで済みますが、数値フォームはmaxlengthが効かない仕様だそうです。 yo3.dev そこで今回は、JavaScriptを併用することで桁数制限のある数値フォームを実装します! 実装 まず、素直…
はじめに CakePHPでデータをデータベースに保存するのは、とても簡単です。 基本的には以下の流れとなります。 1. エンティティを作成 コントローラー内に下記の通り記述します。 <?php $newEntity = $this->モデル->newEntity(); 2. データを加工 そのままだと空っぽのデータになってしまうので、適宜データを加工します。 <?php // フォームの入力値を使う $entity = $this->モデル->patchEntity($newEntity, $this->request->getData()); // エンティティの値を指定する $entity…
以前、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…
indieees の山口です。 今回は、お題の中から「今からプログラミング言語を学習するなら何を学ぶ?」について書きたいと思います。 まずは、今までに触れたことがあるプログラミング言語・スクリプト言語ですが、 Visual Basic 5/6 Delphi 5/6/7 Visual C# .NET Visual Basic .NET Android JAVA PHP 5.0~ (CakePHP) HTML/CSS (XML, NewsML) JavaScript (JQuery, React) TypeScript SQL (SQLServer, Oracle, PostgreSQL, MyS…
こんにちは。 今回はCakePHPのバージョン4.3から非推奨機能に追加されたTestFixture の対応をしたのでバックエンドエンジニアの共同制作でブログに書いてみました。 冒頭〜導入手順5までは高橋で、手順6以降は西中が書いております。 以前PHP8.1にアップデートした際にCakePHPのバージョンも4.2から4.3にアップデートしました。 その時のブログはこちら↓ https://tech.connehito.com/entry/2023/03/31/195819 この時からテストを実行する度に以下のような警告が出るようになりました。 Deprecated Error: You ar…
こんにちは。コネヒトの開発部プラットフォームグループでインフラエンジニアをしている @sasashuuu です。本日は私の所属するチームが最近興味・関心を持って取り組んでいるプラットフォームエンジニアリングの話題について取り上げたいと思います。弊社で行っていたカナリアリリースの運用改善の話になります。 はじめに はじめに本記事の中心となるプラットフォームエンジニアリングとカナリアリリースの概要について簡単に触れておきます。 プラットフォームエンジニアリングとは、誤解を恐れずに端的に言えばアプリケーション開発者のためのプラットフォームの開発と提供を行うアプローチのことで、Gartner 社の プ…
はじめに 小ネタです。 CakePHP3でのORMでの書き方です。 WHERE A = B AND (C = D OR E = F) AND (G = H OR I = J) のようにORを複数含んだ場合の書き方です。 マニュアルにはここまで記載がある WHERE A = B AND (C = D OR E = F) でしたら、マニュアルにあるんですが… https://book.cakephp.org/3/ja/orm/query-builder.html#advanced-query-conditions $query = $articles->find() ->where([ 'auth…
はじめに この記事について Techpit にて表題のテキストをリリースしたのでお知らせです。 www.techpit.jp タイトルに「教材(?)」と書いたのは、Techpit で出すのでいちおう教材ではあるんですが、胸を張って教材と呼ぶにはちょっと内容が薄いかなという含意があります。正直にいえば、お話をいただいたときも、書いているときも、こうやってリリースしたあとも、本当に価値があるものが (書ける|書けてる|書けた) んだろうか、という迷いがありました(いまもあります)。 そういう意味で、この記事では、最後のあがきとして自分を納得させられるような言い訳半分、本教材の紹介半分になるような感…
初めまして。 まつもと(matzn)です。 この度はてなブログを開設しました。 簡単に自己紹介をさせてください。 今僕は東京のWeb系スタートアップでソフトウェアエンジニアとして働いています。 主に使っている言語はRuby on Railsです。 時々CakePHPやNuxt.jsを触ったりすることもあります。 ソフトウェアエンジニアなので エンジニアリングに関する記事が多くなりますが、 それ以外にも 日々学んだことだったり気づいたことを書いていきたいです。 文章を書くことがあまり得意ではなく 拙い言い回しも多いですが、書いているうちに少しずつ慣れていきたいです。 一発目はこんなところで。
ウェブ開発において、効率的で堅牢なアプリケーションを構築するためには、PHPフレームワークが重要な役割を果たします。代表的なPHPフレームワークを比較し、最適な選択を行う際のポイントを初心者でも分かりやすく説明します。[スポンサーリンク] 最近、仕事楽しめてますか?!社内SEへ転職するなら【社内SE転職ナビ】 PHPフレームワークの役割 フレームワーク選びのポイント 代表的なPHPフレームワークの比較 MVC(Model-View-Controller)とは? まとめ PHPフレームワークの役割 PHPフレームワークは、ウェブアプリケーションを開発する際に共通するタスクや機能を提供するツールセ…
とりあえずinstall composer require robmorgan/phinxinitで初期化をするらしい。 vendor/bin/phinx initphinx.php が生えた。 <?php return [ 'paths' => [ 'migrations' => '%%PHINX_CONFIG_DIR%%/db/migrations', 'seeds' => '%%PHINX_CONFIG_DIR%%/db/seeds' ], 'environments' => [ 'default_migration_table' => 'phinxlog', 'default_envi…
LaravelですらないCakePHPやFuelPHPや果てはVanila PHPで作られたようなサービス。なんかうまくいってそのまま増築運用されたけどさすがに経年劣化とメンバーの入れ替えが進み対応できる人を新しく探さなくてはならなくなったプロジェクト。EC2でnginxとphp-fpmホスティングして管理用のphpMyAdminがt2-microで動いてるようなシステム。 あの頃のPHP人材は単価上げるためにreactとかvuejsとかまたはネイティブアプリ開発にスライドしていったりして、そして今求められているのはピュアなPHPerではなく、phpやfwのバージョンアップだったりコンテナ化や…
初めに Web アプリケーションは、インターネットに接続して、インストールすることなく使用できるアプリのことです。本記事では、Web アプリケーションを作るための手順をまとめます。
こんにちは。倉内です。プログラミングを学ぶ目的はさまざまですが、開発系のITエンジニアを目指している場合、WebアプリケーションやWebサービスをつくれるようになりたいと考えている方も多いと思います。ただ、プログラミング言語の基礎を学んだあと「次は何をしたらいいのだろう?」と困ってしまう方もお見かけします。手軽に始められるオンラインの学習サービスも多数ありますが、選択肢が多くて迷う場合もありますよね。そこで今回は、独学でWeb開発の知識を学びたい方ににおすすめのpaizaラーニングのコンテンツをご紹介します。paizaラーニングは、ブラウザ上で1本3分程度の学習動画の視聴と演習課題に取り組める…
はじめに みなさん、こんにちは。BASEでエンジニアをしております田村(taiyou)です。 2023年4月6日に、ChatGPTを活用してショップオーナー向けに文章の作成をサポートする機能「BASE AI アシスタント」をリリースしました。そのため、この記事では、BASE AI アシスタントのシステム構成について紹介します。 今回は、システム設計についてのテックブログなのでChatGPTのプロンプトについての言及はしません。(要望があれば次のテックブログに執筆いたします!) また、前回のテックブログで「IdPとしてSAML認証機能を自前実装した」を執筆したのでこちらも是非見てみてください! …
(本記事は2023/5/26時点の情報にアップデートしております) こんにちは、技術広報のyayawowoです。 突然ですが、株式会社ラクスと聞いて何を思い浮かべますでしょうか? 弊社ラクスでは、様々なプロダクトを展開していますが正直認知度は低いと思っております。 そこで今回、弊社についてもっともっと知っていただくため・・・ ラクスが展開している全10プロダクト 全10プロダクトの技術スタック インフラ/SRE/デザイナーの技術スタック について、ご紹介させていただきます! SaaS開発に携わる方、弊社に少しでも興味を持っている方の一助となれば幸いです!