LoggerFactory: Only check for Psr\Log\LoggerInterface once
authorBryan Davis <bd808@wikimedia.org>
Sat, 24 Oct 2015 22:05:21 +0000 (16:05 -0600)
committerBryan Davis <bd808@wikimedia.org>
Mon, 26 Oct 2015 18:57:28 +0000 (12:57 -0600)
commit701b9a0dc8f84326b558059e7e0d70d671a828e3
treee21b0a25d1d58fe15ceedbaafac82bc2dc0563c8
parent667299e8fcf00169ff2ab85edbc9abc95fe6bcf3
LoggerFactory: Only check for Psr\Log\LoggerInterface once

LoggerFactory::getInstance() will be called many times during the course
of handling a typical MediaWiki request. The interface_exists() guard
condition it uses is an attempt to provide an informative error message
when Composer managed libraries are not installed. This check is only
needed on the first invocation of getInstance() to be effective. Using
an additional boolean to guard the interface_exists() call will allow
the PHP runtime to avoid a potentially expensive (at least compared to
a static boolean comparison) function call.

This is the sort of thing that smells of premature optimization, but its
addition is in fact informed by examination of performance reports from
the Wikimedia production environment.

Bug: T115729
Change-Id: I437bcb5326b06145081f2b86f6c4d0c8dc1a318c
includes/debug/logger/LoggerFactory.php