web-dev-qa-db-ja.com

Laravel 5.2-サービスプロバイダーまたはヘルパークラスなどを作成する方が良いですか?

そこで、xmlを生成してファイルのファイルパスを返すAPIエンドポイント(明らかに安らかなものではない)を作成しました。明らかにもっと複雑ですが、それが要点です。

私の問題はこれです。私のコントローラーの内部には、データベースから情報を取得して(モデルやリレーションシップなどを使用して)xmlを生成するすべてのコードがあり、コントローラーを散らかすのではなく、抽象化した方がよいと思います。

だから私は何をしますか?これをすべて処理するヘルパークラスを簡単にまとめることができますが、Serviceに抽象化する必要があると誰もが私に言い続けています。私はこれを成功させたことがなく、状況が複雑すぎるように感じています。

どちらがベストプラクティスでしょうか?ヘルパークラスを作成するのは悪い習慣ですか?だれでも「オプションC」の提案がありますか?

2
Bill Garrison

それはすべて少しセマンティクスです。

サービスはヘルパークラス、またはある意味でヘルパークラスはサービスになります。

ララヴェルの観点から。サービス(特定のもの)を作成すると、コードの再利用が容易になり、テストが容易になります。

方法を学ぶというこぶを乗り越える価値は十分にあります。必要なサービスの数は、サービスコンテナが非常に役立つ依存関係が増えるにつれて増加する傾向があります。

5
Jeremy French