是否可以在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_New_Api->getApi()
覆盖Core_Default_Api->getApi()
。任何建议请
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();
}
}
这不是真正的"Zend"问题。它更多的是PHP&设计模式问题。
问题是,您需要切换邮件传输的实例——您正在寻找依赖项注入,也许。。。。或Proxy或Facade设计图案。你需要一个地方,在那里你可以切换课程,其他地方也会改变。我会在config中设置它,并有一个从config加载propper类名并返回新实例的类。。。像这样的东西:
TransportSelector::getTransport()->send($mail);