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