是否可以在Zend中动态覆盖函数?
class My_Core_Default_Api extends Zend_Mail_Transport_Sendmail
{
public function getApi()
{
echo "Old Api";
}
}
class My_Core_New_Api extends Zend_Mail_Transport_Sendmail
{
public function getApi()
{
echo "New Api";
}
}
在此,我想用Core_Default_Api->getApi()
覆盖Core_New_Api->getApi()
。请提出任何建议
答案 0 :(得分:0)
class My_Core_New_Api extends My_Core_Default_Api {
public function getApi()
{
echo "New Api";
// if you'd like to also include functionality of parent class
My_Core_Default_Api::getApi();
}
}
答案 1 :(得分:0)
这不是真正的“Zend”问题。它更像是PHP&设计模式问题。
问题是您需要切换邮件传输的实例 - 您正在寻找依赖注入,可能......或代理或外观设计模式。你需要一个地方来切换课程,它会在其他任何地方改变。我在config中设置了它并且有一个类从config加载propper类名并返回新实例......这样的东西:
TransportSelector::getTransport()->send($mail);