我遇到了一个解决Zend Framework 1.x中的限制的问题,目前我无法替换或更新它。我有一个新颖的想法,但我不确定是否有可能。是否可以实例化为子对象,然后在PHP中提取父对象?
基本问题是是否可以实例化一个扩展子对象,然后提取父对象,然后进行序列化?
为了说明为什么,本质上Zend_Mail
类有一些非常愚蠢的限制和对其方法的类型检查,在我的情况下具体为$mail->setType()
。
我的想法是,我可以创造一个扩展的类(My_Zend_Mail extends Zend_Mail
),然后重写setType() {...}
方法在我的课,消除了限制,允许我在Zend_Mail
类设置某些protected
属性。限制是我需要将它作为序列化对象传递给远程服务器,并且该远程服务器在反序列化时不会拥有或识别My_Zend_Mail
类。所以我需要序列化我的结尾处的父亲Zend_Mail
。
回到原来的问题,我可以提取父对象后,它已通过扩展子实例化?
编辑:我发现以下问题,其选择的答案提出了hackish的方式来重塑一个序列化的字符串,使其unserializes为不同的对象....
Convert/cast an stdClass object to another class
这可能会起作用,尽管进一步下来它看起来像有人通过Reflection类来做这件事,这更接近我正在寻找的东西。除非有其他建议,否则我可能会给出一个镜头并报告回来。
对不起,我不认为你可以。为了获得父对象,你需要实例化父类。但是,通过使用“parent :: example()”来调用父“example”方法,您应该可以从子对象访问父方法和属性。 –
对不起@CatalinCislariu,但很明显,我可以访问父项属性和方法......这就是我提出它的原因。就能够重塑或提取父母而言,你能否提供任何能够使你得出结论的东西? – oucil
我错了,看底部。 –