Php 拆分一个函数';不带开关的s处理和响应(寻找替代方案)

Php 拆分一个函数';不带开关的s处理和响应(寻找替代方案),php,laravel,optimization,Php,Laravel,Optimization,我有一个处理请求的函数和另一个返回特定响应的函数。必须有更好的方法/最佳实践来处理这个问题,但是我不确定 $isResponseForm=$this->getIsResponseForm(); $formResponse=null; 开关($this->formId){ 案例“开始”: $formResponse=$isResponseForm?$this->start():$this->\u start(); $this->formId=$this->session->get('checkou

我有一个处理请求的函数和另一个返回特定响应的函数。必须有更好的方法/最佳实践来处理这个问题,但是我不确定

$isResponseForm=$this->getIsResponseForm();
$formResponse=null;
开关($this->formId){
案例“开始”:
$formResponse=$isResponseForm?$this->start():$this->\u start();
$this->formId=$this->session->get('checkout\u item.registration.has\u pauld')?'late':'start';
打破
“迟到”案例:
$formResponse=$isResponseForm?$this->late():$this->_late();
$this->formId='start';
打破
“搜索”案例:
$formResponse=$isResponseForm?$this->search():$this->\u search();
$this->formId=$this->session->exists('change.address')?'verify':'review';
打破
“验证”案例:
$formResponse=$isResponseForm?$this->verify():$this->\u verify();
$this->formId='address';
打破
案例“地址”:
$formResponse=$isResponseForm?$this->address():$this->\u address();
$this->formId='review';
打破
个案"检讨":
$formResponse=$isResponseForm?$this->review():$this->\u review();
打破
“确认”案例:
$formResponse=$isResponseForm?$this->confirmation():null;
打破
违约:
$this->processor->errorLog->add('Invalid FormID:'。$this->FormID);
$this->form->addError('发生未知错误('.$this->processor->errorLog->getLastId()。);
}
如果(!$isResponseForm){
$this->setIsResponseForm(true);
返回$this->processForm();//重新启动switch语句
}
返回$formResponse;
$isResponseForm
在第一次迭代后设置为true。 带有下划线
\uuu
前缀的函数用于处理,而不带下划线的函数用于处理响应

protected function start(): Form
    {
        $checkoutItem = $this->session->get('checkout_item');

        $options = (new Collection($checkoutItem['options']))->sortBy('value');

        $this->form->setFormId('search');
        $this->form->header(
            'FIGURE LENGTH',
            'FigLengthHeaderSlug'
        );
        $this->form->checkbox(
            'Change my Address',
            'address_change'
        );

        return $this->form;
    }
例:

  • 第1步:
    $this->_start()
  • 第二步:
    返回$this->start()

我把它们放在同一个函数中,但很混乱,我决定将它们分开。

我看不出这有什么错(除了你的方法命名约定可能…),当然你可以用其他方式来做,但是它们可能不会更短,也不会更易于阅读和维护。我们可以看到整个类吗?我添加了一个表单响应函数,另一个
\u start()
函数不返回任何内容,实际上只是修改会话。仅仅因为有比我目前面临的更多的事情在进行,所以展示每一个类是不太可行的。