definitions = $definitions; } public function get(string $name): mixed { if (!isset($this->definitions[$name])) { throw new \RuntimeException("Could not find a dependency named $name"); } $ret = $this->definitions[$name]; if (is_callable($ret) && !is_string($ret) && !is_array($ret)) { $ret = $ret($this); $this->definitions[$name] = $ret; } return $ret; } } function build_context(array $config): Context { return new Context([ 'config' => $config, CacheDriver::class => function($c) { // Use the global for backwards compatibility. return \cache::getCache(); } ]); }