我一直在尝试找到有关通过静态方法和new
关键字实例化表单字段之间差异的一些信息。有人可以告诉我在什么new MyFormField
和MyFormField::create()
特别是之间有什么实际含义,局限性吗?关于SilverStripe
使用create
factory方法将检查重载(通过设置Object::useCustomClass()
),并在这种情况下返回自定义类的实例。
此方法首先用于强类重载(单例和数据库交互),然后是自定义类重载。如果找到重载,则返回此实例的实例,而不是原始类。要重载类,请使用Object :: useCustomClass()
因此,使用该create
方法而不是自己实例化Object可以在不更改代码的情况下重载使用的Class。
请参阅
http://api.silverstripe.org/3.1/class-Object.html#_useCustomClass
http://api.silverstripe.org/3.1/class-Object.html#_create
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句