/** * Add a contextual binding to the container. * * @param string $concrete * @param string $abstract * @param \Closure|string $implementation * @return void */ public function addContextualBinding($concrete, $abstract, $implementation) { $this->contextual[$this->normalize($concrete)][$this->normalize($abstract)] = $this->normalize($implementation); }// Add a contextual binding to the container. // a Two dimensional array used to save the implementation value. /** * Register a binding if it hasn‘t already been registered. * * @param string $abstract * @param \Closure|string|null $concrete * @param bool $shared * @return void */ public function bindIf($abstract, $concrete = null, $shared = false) { if (! $this->bound($abstract)) {// this->bound $this->bind($abstract, $concrete, $shared);// bind the parameter } }// check binding , if not has binding it. /** * Register a shared binding in the container. * * @param string|array $abstract * @param \Closure|string|null $concrete * @return void */ public function singleton($abstract, $concrete = null) { $this->bind($abstract, $concrete, true);// bind the parameter }// Register a shared binding in the container.
时间: 2024-10-08 09:57:46