/** * 获取API实现类的实例 * @param Request $request * @return object */ public function getImpl($request) { Verify::isTrue($request !== null); if ($this->impl === null) { $injected =& $this->injected; $injected = array(); $this->impl = $this->factory->create($this->class, null, null, function ($src, &$succeeded) use($request, &$injected) { list($val, $found) = $request->find($src); $succeeded = $found; $injected[$src] = $val; return $val; }); asort($injected); } return $this->impl; }