code: public function setSingleton($class, $definition = [], array $params = [])
      {
          $this->_definitions[$class] = $this->normalizeDefinition($class, $definition);
          $this->_params[$class] = $params;
          $this->_singletons[$class] = null;
          return $this;
      }
docs: Registers a class definition with this container and marks the class as a singleton class.
  
  This method is similar to [[set()]] except that classes registered via this method will only have one
  instance. Each time [[get()]] is called, the same instance of the specified class will be returned.
  
  @param string $class class name, interface name or alias name
  @param mixed $definition the definition associated with `$class`. See [[set()]] for more details.
  @param array $params the list of constructor parameters. The parameters will be passed to the class
  constructor when [[get()]] is called.
  @return $this the container itself
  @see set()