매일laravel-20160818|Container -21

   /**
    * 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.

좋은 웹페이지 즐겨찾기