SilverStripe:静态创建表单字段,并通过“' new'关键词

时间:2014-05-03 09:38:25

标签: static subclass instantiation silverstripe

我一直试图通过静态方法和new关键字找到实例化表单字段之间差异的一些信息。有人可以告诉我new MyFormFieldMyFormField::create()之间的实际含义和限制是什么。关于SilverStripe

1 个答案:

答案 0 :(得分:2)

使用create工厂方法将检查重载(通过Object::useCustomClass()设置)并在这种情况下返回自定义类的实例。

  

此方法首先针对强类重载(单例和数据库)   交互),然后自定义类重载。如果发现过载,   返回的实例而不是原始类。至   重载一个类,使用Object :: useCustomClass()

因此,使用create方法而不是自己实例化Object可以在不改变代码的情况下重载已使用的类。


 http://api.silverstripe.org/3.1/class-Object.html#_useCustomClass
  http://api.silverstripe.org/3.1/class-Object.html#_create