From 7f5c0cffd82ae7784c2dfc41a04bfd22547832df Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Sat, 13 Aug 2016 20:48:29 -0700 Subject: [PATCH] HTMLForm: Use ObjectFactory instead of Reflection ObjectFactory has a hack that constructs an object directly if there are less than 10 parameters, which there typically is for HTMLForm classes. This is faster than using ReflectionClass, and whenever ObjectFactory is updated to take advantage of the splat operator, this will automatically use it as well. And use ::class while we're at it. Change-Id: I7a696c127c237713448b165b9b4faee13f4ff88e --- includes/htmlform/HTMLForm.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/includes/htmlform/HTMLForm.php b/includes/htmlform/HTMLForm.php index a7acd8b988..ff37e24e2f 100644 --- a/includes/htmlform/HTMLForm.php +++ b/includes/htmlform/HTMLForm.php @@ -275,14 +275,12 @@ class HTMLForm extends ContextSource { switch ( $displayFormat ) { case 'vform': - $reflector = new ReflectionClass( 'VFormHTMLForm' ); - return $reflector->newInstanceArgs( $arguments ); + return ObjectFactory::constructClassInstance( VFormHTMLForm::class, $arguments ); case 'ooui': - $reflector = new ReflectionClass( 'OOUIHTMLForm' ); - return $reflector->newInstanceArgs( $arguments ); + return ObjectFactory::constructClassInstance( OOUIHTMLForm::class, $arguments ); default: - $reflector = new ReflectionClass( 'HTMLForm' ); - $form = $reflector->newInstanceArgs( $arguments ); + /** @var HTMLForm $form */ + $form = ObjectFactory::constructClassInstance( HTMLForm::class, $arguments ); $form->setDisplayFormat( $displayFormat ); return $form; } -- 2.20.1