-
-
Labels: CakePHP
オブジェクト、ファクトリ、リポジトリ、サービスの実装例
ランサーズ Advent Calendar 2019 12日目の記事です。
緑茶は生茶派のotaです。
ランサーズの開発の際用いているオブジェクト、ファクトリ、リポジトリ、サービスのCakePHPでの実装のサンプルコードを公開しました。
https://github.com/LancersDevTeam/lancers-php-sample/tree/master/ObjectFactoryRepositoryService
環境
言語 PHP7.3
フレームワーク CakePHP2.10
解説
ランサーズではオブジェクト、ファクトリ、リポジトリはデータベースのテーブルと1対1にしています(例 messagesテーブルに対してMessageRepository.php)。Serviceは複数のオブジェクトを跨ぐ処理、業務ロジックを記述しています。Lib配下にドメインごとにディレクトリを切っています。サンプルコードはメッセージ機能の例です。説明用のとてもシンプルでエッセンスだけをお伝えするコードです。
現在のランサーズではサンプルコードのようにオブジェクトにfromData()という記述を書いてそこからファクトリのfromData()を呼び出しているのですが、fromData()はオブジェクトを経由せずにファクトリから直接呼び出し、toData()はファクトリに記述する方が良いのではないかとは思います。
以上になります。開発の際の参考になりますと幸いです。
私の他の執筆記事はこちら。
ランサーズではサービスを成長させてくれるエンジニア、デザイナーを募集しています!
ご興味がある方は、以下URLよりご応募ください。
【中途採用】
フロントエンドエンジニア
サーバーサイドエンジニア
コーポレートエンジニア
SREエンジニア
【新卒採用・その他】
21・22新卒
その他採用情報
関連記事
-
-
CakePHP3→CakePHP4にmigrateしてみた
CakePHP Advent Calender 2019 最終日の記事です。 SREチームの金澤です。 2019/12/16にCakePHP4がリリースされました。 ランサーズでは、CakePHP2.10の現システムをCakePHP3に移行中ですが、 同時に、 …
-
-
CakePHP 3.4 ORM のクエリを調べてみた exists 編
愛犬のダックスをサマーカットし過ぎて失敗した nakajiman です。毛並みがチクチクして痛いのです。 CakePHP 3.4 ORM がどんなクエリを発行しているのか調べてみます。まず、簡単なところで、レコードが存在するかどうか調べる exists を見て …
-
-
PHP, CakePHPバージョンアップに向けてCIで品質を担保・向上していく
こんにちは、エンジニアの上野です。 今回はソース例や実際のサンプルソースを交えながら 「PHPバージョンアップに向けてCIで品質を担保・向上していく」と題してlancers.jp本体に導入しているCircleCIでの取り組みについてご紹介します。 導入背景 P …