程式碼優化

地平線發表於2020-02-18

優化前

class Parse
{
    public function run()
    {
        $this->func1($data);
        $this->func2($data);
        ...
    }

    public function func1()
    {

    }

    public function func2()
    {

    }
}

優化後

# Support.php
trait Support
{
    public $kernel = [];

    /**
     * 處理器
     */
    public function processor()
    {
        foreach ($this->kernel as $func) {
            try {
                method_exists($this, $func) && call_user_func_array([$this, $func], func_get_args());
            } catch (Exception $e) {
                app('log')->error($e);
                continue;
            }
        }
    }
}

# Parse.php
class Parse
{
    use Support;

    public $kernel = [
        'func1',
        'func2',
    ];

    public function run()
    {
        $this->processor($data);
    }

    public function func1()
    {
        //todo...
    }

    public function func2()
    {
        //todo...
    }
}

優點

  1. run 方法就變得很簡潔,不用寫一堆方法呼叫。
  2. 方法呼叫統一 catch ,這樣就算有方法丟擲異常,也不影響後面方法執行。
本作品採用《CC 協議》,轉載必須註明作者和本文連結

如果你不能把一件事很簡單的講清楚,那麼你就是還不夠了解。

相關文章