0
我有每個命令具有類似的結構(語法分析,驗證,執行,確認/錯誤)命令解析器,但他們都做不同的事情(開,關,addnote,changestatus)。分析器與結構(PHP)
我被要求更改錯誤消息,並且必須單獨做所有的命令相同的變化,因爲它們都具有不同的參數,並從數據庫中不同的表拉。但他們大多都是一樣的。有沒有更簡單的方法來做到這一點? (而不是開關盒和硬編碼所有命令)
我知道還有更多的改變來了,我寧願不復制/粘貼,每次更改2個單詞到每個命令,特別是因爲我知道他們要仔細的命令數...
validate($commands){
foreach($commands as $command){
switch($command['name']){
case 'close':
validateClose($command);
break;
case 'addnote:
validateAddnote($command);
break;
...
}
}
}
execute($commands){
foreach($commands as $command){
switch($command['name']){
case 'close':
executeClose($command);
break;
case 'addnote:
executeAddnote($command);
break;
...
}
}
}
validateClose($command){
// parse here for parameters, 3
// validate parameters
$command['valid'] = $validated;
if(!$validated)
$message = "Invalid because...";
}
validateAddnote($command){
// parse here for parameters, 1
// validate parameters
$command['valid'] = $validated;
if(!$validated)
$message = "Invalid because...";
}
...
executeClose($command){
$db->status('close', params);
$message = "closed x with {params}";
}
executeAddnote($command){
$db->add('note', param);
$message = "Added {param} as note to x";
}
...
當沒有代碼示例或演示你在做什麼時,很難提供幫助。 – Rottingham