关闭

每天laravel-20160818| Container -21

83人阅读 评论(0) 收藏 举报
分类:
    /**
     * 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.
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:105775次
    • 积分:6769
    • 等级:
    • 排名:第3417名
    • 原创:599篇
    • 转载:22篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论