優化前
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...
}
}
優點
run
方法就變得很簡潔,不用寫一堆方法呼叫。- 方法呼叫統一
catch
,這樣就算有方法丟擲異常,也不影響後面方法執行。
本作品採用《CC 協議》,轉載必須註明作者和本文連結