_options['log404'])) { $blacklist = $this->_options['log404']; } if (!$blacklist) { return false; } $class = get_class($exception); if (!$this->isBlacklisted($class, (array)$blacklist)) { return false; } if (!$request) { return true; } $referer = $request->getHeaderLine('Referer'); $baseUrl = Configure::read('App.fullBaseUrl'); if (strpos($referer, $baseUrl) === 0) { return false; } return true; } /** * @param string $class * @param array $blacklist * @return bool */ protected function isBlacklisted($class, array $blacklist) { // Quick string comparison first if (in_array($class, $blacklist, true)) { return true; } // Deep instance of checking foreach ($blacklist as $blacklistedClass) { if ($class instanceof $blacklistedClass) { return true; } } return false; } }