码迷,mamicode.com
首页 > 其他好文 > 详细

每天laravel-20160818| Container -21

时间:2016-05-31 10:40:59      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:function   abstract   return   

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


本文出自 “专注php” 博客,请务必保留此出处http://jingshanls.blog.51cto.com/3357095/1784693

每天laravel-20160818| Container -21

标签:function   abstract   return   

原文地址:http://jingshanls.blog.51cto.com/3357095/1784693

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!