欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

每天laravel-20160818| Container -21

程序员文章站 2022-06-05 21:26:27
...
   /**    * Fire all of the resolving callbacks.    *    * @param  string  $abstract    * @param  mixed   $object    * @return void    */// Fire all of the resolving callbacks.   protected function fireResolvingCallbacks($abstract, $object)   {// fire Resolving Callbacks       $this->fireCallbackArray($object, $this->globalResolvingCallbacks);   // fireCallbackArray is a function,    // two parameters       $this->fireCallbackArray(           $object, $this->getCallbacksForType(               $abstract, $object, $this->resolvingCallbacks           )       );// set the fire Call back Array       $this->fireCallbackArray($object, $this->globalAfterResolvingCallbacks);      // fire two       $this->fireCallbackArray(           $object, $this->getCallbacksForType(               $abstract, $object, $this->afterResolvingCallbacks           )       );// fire third   }// this is a fire function to make it   /**    * Get all callbacks for a given type.    *    * @param  string  $abstract    * @param  object  $object    * @param  array   $callbacksPerType    *    * @return array    */// Get all callbacks for a given type.   protected function getCallbacksForType($abstract, $object, array $callbacksPerType)   {// this is abstract parameters    // object    // array call backs Per Type       $results = [];// has a array store       foreach ($callbacksPerType as $type => $callbacks) {// loop the result           if ($type === $abstract || $object instanceof $type) {               $results = array_merge($results, $callbacks);// combine the  array           }       }       return $results;   }   /**    * Fire an array of callbacks with an object.    *    * @param  mixed  $object    * @param  array  $callbacks    * @return void    */   protected function fireCallbackArray($object, array $callbacks)   {       foreach ($callbacks as $callback) {           $callback($object, $this);       }   }// fire an array callbacks with an object.   /**    * Determine if a given type is shared.    *    * @param  string  $abstract    * @return bool    */   public function isShared($abstract)// check shared status   {       $abstract = $this->normalize($abstract);// first get a normal string that i need       if (isset($this->instances[$abstract])) {           return true;       }// if it is done, ok return it       if (! isset($this->bindings[$abstract]['shared'])) {           return false;       }// if it can't be bound it       return $this->bindings[$abstract]['shared'] === true;    // if set ,get the result about shared   }   /**    * Determine if the given concrete is buildable.    *    * @param  mixed   $concrete    * @param  string  $abstract    * @return bool    */   protected function isBuildable($concrete, $abstract)   {       return $concrete === $abstract || $concrete instanceof Closure;   }// Determine if the given concrete is buildable.