less test cases * * The purpose : every time you have a method which returns an object or null, * you should return an object or a "NullObject". With NullObject, you don't need * statement like "if (!is_null($obj)) { $obj->callSomething(); }" anymore. * * In this case, this a logger which does nothing. Other examples : * - null logger of symfony profiler * - null output in symfony/console * - null handler in a Chain of Responsiblities pattern * - null command in a Command pattern * * Performance concerns : ok there is a call for nothing but we spare an "if is_null" * I didn't run a benchmark but I think it's equivalent. * * Key feature : of course this logger MUST implement the same interface (or abstract) * like the other loggers. */ class NullLogger implements LoggerInterface { public function log($str) { // do nothing } }