是否可以通过classmap和autoloader覆盖框架类的类文件位置?如果是,那怎么样?
示例:我想覆盖Zend\Form\Fieldset,以便在框架中引用Zend\Form\Fieldset的任何地方,我希望它使用我自己的类文件而不是原始文件.
动机:更新框架时,我希望保护我的修改不被覆盖.
已知替代方案:修改框架中的代码.缺点:更新框架时修改会丢失.
在另一个地方写同一个班级(FQCN)通常是一个坏主意.这导致两个同等命名的类存在于两个不同的位置.Fielset在您自己的命名空间中创建自己的更好的主意.说,Application\Form\Fieldset.
您可以通过自己的方式扩展ZF2字段集.然后引用这个新的fieldset类,它的所有内容都更加可维护.
此方法的缺点是您不会自动使用新的fieldset类.您必须Application\Form在您使用的每个表单中引用命名空间.另一方面,这使得其他用户更清楚地了解到具体发生的事情:使用ZF2代码没有意外后果.
我在这里唯一要说的是,你需要另一个字段集?如果你认为你需要那个视图帮助者,那不是真的.您可以修改视图助手以呈现字段集,而无需修改Fieldset表单类本身.
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |