From c1423c41c090bda3a71b8b392e6611529f607320 Mon Sep 17 00:00:00 2001 From: Tim Younger Date: Mon, 13 Mar 2017 10:17:36 -0700 Subject: [PATCH] `warn` is a method on the concrete Logger impl from Monolog. `warning` on the PSR LoggerInterface should be used instead. --- src/LaunchDarkly/LDClient.php | 10 +++++----- tests/LDClientTest.php | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/LaunchDarkly/LDClient.php b/src/LaunchDarkly/LDClient.php index c439b7906..2fb604cf1 100644 --- a/src/LaunchDarkly/LDClient.php +++ b/src/LaunchDarkly/LDClient.php @@ -24,7 +24,7 @@ class LDClient { protected $_send_events = true; /** @var array|mixed */ protected $_defaults = array(); - /** @var mixed|LoggerInterface */ + /** @var LoggerInterface */ protected $_logger; /** @var FeatureRequester */ @@ -113,11 +113,11 @@ public function variation($key, $user, $default = false) { try { if (is_null($user) || is_null($user->getKey())) { $this->_sendFlagRequestEvent($key, $user, $default, $default); - $this->_logger->warn("Variation called with null user or null user key! Returning default value"); + $this->_logger->warning("Variation called with null user or null user key! Returning default value"); return $default; } if ($user->isKeyBlank()) { - $this->_logger->warn("User key is blank. Flag evaluation will proceed, but the user will not be stored in LaunchDarkly."); + $this->_logger->warning("User key is blank. Flag evaluation will proceed, but the user will not be stored in LaunchDarkly."); } $flag = $this->_featureRequester->get($key); @@ -178,7 +178,7 @@ public function track($eventName, $user, $data) { return; } if (is_null($user) || $user->isKeyBlank()) { - $this->_logger->warn("Track called with null user or null/empty user key!"); + $this->_logger->warning("Track called with null user or null/empty user key!"); } $event = array(); @@ -200,7 +200,7 @@ public function identify($user) { return; } if (is_null($user) || $user->isKeyBlank()) { - $this->_logger->warn("Track called with null user or null/empty user key!"); + $this->_logger->warning("Track called with null user or null/empty user key!"); } $event = array(); diff --git a/tests/LDClientTest.php b/tests/LDClientTest.php index 3a1492962..b4b5d2245 100644 --- a/tests/LDClientTest.php +++ b/tests/LDClientTest.php @@ -6,6 +6,7 @@ use LaunchDarkly\LDClient; use LaunchDarkly\LDUser; use LaunchDarkly\LDUserBuilder; +use Psr\Log\LoggerInterface; class LDClientTest extends \PHPUnit_Framework_TestCase { @@ -64,6 +65,22 @@ public function testSecureModeHash() { $user = new LDUser("Message"); $this->assertEquals("aa747c502a898200f9e4fa21bac68136f886a0e27aec70ba06daf2e2a5cb5597", $client->secureModeHash($user)); } + + public function testLoggerInterfaceWarn() + { + // Use LoggerInterface impl, instead of concreate Logger from Monolog, to demonstrate the problem with `warn`. + $logger = $this->getMockBuilder(LoggerInterface::class)->getMock(); + + $logger->expects(self::atLeastOnce())->method('warning'); + + $client = new LDClient('secret', [ + 'logger' => $logger, + ]); + + $user = new LDUser(''); + + $client->variation('MyFeature', $user); + } }