code: protected function injectVariables($object)
      {
          // Inject some properties when they're public
          $vars = array_keys(get_object_vars($object));
  
          foreach ($this->variables as $name => $value)
          {
              if (in_array($name, $vars))
                  $object->$name = $value;
          }
  
          if (in_array('arguments', $vars))
              $object->arguments = $this->arguments;
  
          if (in_array('logger', $vars))
              $object->logger = Logger::getLogger(get_class($object));
  
          if (method_exists($object, 'setLogger'))
              $object->setLogger(Logger::getLogger(get_class($object)));
      }
docs: Get a list of public variables of the object, and set them to any variable assigned
  using AppRunner#setVariable. A variable called 'logger' will be filled with a logger
  instance of the class. If a method called 'setLogger' exists it will also be called
  with this instance.
  
  @param object $object The object to fill