簡體   English   中英

如何處理重復參數?

[英]How to deal with repetitive parameters?

如何在create()處理許多重復參數。 我喜歡看起來整潔和可讀。

例如在控制器中,我們有帶有許多參數的addList ()方法。

public function addList(CreateListRequest $request)
{
    $created = $this->list->create(
                  $request->user(),             
                  $request->name,
                  $request->subject,
                  $request->description, 
                  $request->location,
                  $request->do_email,
                  $request->provider,
                  $request->something1,
                  $request->something2, 
                );
}

List類中,我們有一個create方法,其中也包含許多重復的許多參數。 並且在$this->api->create()$this->listRepository->create()中也有重復。 有沒有辦法清理或重構它?

class List
{
    public function create($user, $name, $subject, $description, $location, $doEmail, $provider, $something, $something2)
    {
       $list = $this->api->create($name, $subject, $description, $location);

       if ($list->status == "success") {
            // Add to database
           $row = $this->listRepository->create($user->id, $name, $subject, $description, $location, $doEmail, $provider, $something, $something2);
          return $row;
        }

        return false;
    }
}

傳遞請求對象比單獨發送每個參數更好。

public function addList(CreateListRequest $request) {
    $created = $this->list->create($request);
}

在List類中,由於請求對象始終具有用戶會話,因此只需將請求對象傳遞給listRepository類。

class List {

    public function create($request) {

        $list = $this->api->create($request->only(['name', 'subject', 'description', 'location']));

        if ($list->status == "success") {
            $row = $this->listRepository->create($request);
            return true;
        }

        return false;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM