0
對於deleteBarDocument()
,我希望不要執行擴展PHP輔助方法
$this->getModel()->updateParentAudit($this->audit_table,$_POST['id']);
在
deleteDocumentHelper()
helper方法
,但實施其他的東西,如
$this->bla($_POST['id']);
$this->blabla($_POST['id'],$_POST['doc_id']);
如何爲deleteBarDocument()
延長deleteDocumentHelper()
,但讓它保持原樣deleteFooDocument()
?
通常情況下,我只想用
$this->doSomething();
更換
$this->getModel()->updateParentAudit($this->audit_table,$_POST['id']);
,並創建一個doSomething()
法需要任何代碼。這種方法很可能會影響deleteFooDocument()
和deleteBarDocument()
這是不希望的。
或者我應該傳遞一個匿名函數的幫助器方法嗎?我謹慎行事,因爲我已經警告過應該謹慎使用匿名函數。
<?php
class parentController
{
protected function deleteDocumentHelper($type){
if(isset($_POST['id'],$_POST['doc_id'])){
if(documents::removeDocument($type,$_POST['doc_id'],$_POST['id']))
{
$success=1;
//Ability to replace the following line with one or more lines
$this->getModel()->updateParentAudit($this->audit_table,$_POST['id']);
}
else {$success=0;}
header('Content-Type: application/json;');
$this->dontCache();
echo(json_encode(array('success'=>$success)));
}
else {exit($this->missingPage());}
}
}
class childController extends parentController
{
public function deleteFooDocument(){$this->deleteDocumentHelper('foo');}
public function deleteBarDocument(){$this->deleteDocumentHelper('bar');}
}
//Application creates childController object, and evokes apprpropriate method based on GET/POST
?>
感謝融合。是的,我可以這樣做,但它看起來並不真實。我不是說你的解決方案不乾淨,但我所做的不是。我可能會這樣做倒退... – user1032531
其實,你想擴展'parentController-> deleteDocumentHelper'或者修改自己的代碼嗎? – fusion3k