2

Facebook ボタンを実装するとしましょうLike。バックエンドでは、この単純なアクションで多くのことが起こる可能性があります。例: crawl pageextract page datastore page infoなどassociate with user...

各ステップのモジュール (ライブラリ + リポジトリ) を作成したら、それらをコントローラーにまとめる必要があります。モジュールごとにコントローラーを作成する方が、単一のコントローラー内にすべてのコントローラーを挿入するよりもよいでしょうか?

コードで説明すると、A は B より保守しやすいですか?

A:

controllers/
  like.php
  crawler.php
  extract.php
  ...

//and in like.php
$page = Event::fire('page.crawler', $url);
...
$result = Event::fire('page.extract', $data);
...

//in crawler.php
use Lib/CrawlInterface;
function __construct (CrawlInterface $crawl)

//in extract.php
use Lib/ExtractInterface;
function __construct (ExtractInterface $extract)

...

B:

controllers/
  like.php

//and in like.php
use Lib/CrawlInterface;
use Lib/ExtractInterface;
use ...

function __construct (CrawlInterface $crawl, ExtractInterface $extract, ...)

明らかに、これは白黒の質問ではありませんが、Event各コントローラーの DI の数を減らすための良い方法のように思われるため、このように使用する必要があるかどうかを知りたいです (また、コントローラーが太るのを防ぎます)。

4

1 に答える 1

1

Laravel のコントローラーは、いくつかの基本的な機能を備えたエンドポイントを Web アプリケーションに提供することを目的としています。2 つのコントローラー間で通信を行うべきではありません。コードを抽象化して、コントローラーが簡単に呼び出せる個別のクラスにします。このようにして、コントローラーは分離されたままになり、それぞれのルートの目的に集中しますが、通信を混乱させることなく、必要な複雑なドメイン レベルの機能を呼び出すことができます。

于 2013-10-19T17:28:21.223 に答える