关闭

每天laravel-20160817| Container -20

90人阅读 评论(0) 收藏 举报
分类:
    /**
     * Register a new resolving callback by type of its first argument.
     *
     * @param  \Closure  $callback
     * @return void
     */
    // Register a new resolving callback by type of its first argument
    protected function resolvingCallback(Closure $callback)
    {
        $abstract = $this->getFunctionHint($callback);// get the abstract function

        if ($abstract) {// if get the abstract function set in
            $this->resolvingCallbacks[$abstract][] = $callback;// one is abstract function
        } else {
            $this->globalResolvingCallbacks[] = $callback;// other set in the global Resolving Call backs
        }
    }

    /**
     * Register a new after resolving callback by type of its first argument.
     *
     * @param  \Closure  $callback
     * @return void
     */
    protected function afterResolvingCallback(Closure $callback)
    {
        $abstract = $this->getFunctionHint($callback);// get the result

        if ($abstract) {
            $this->afterResolvingCallbacks[$abstract][] = $callback;// one is in the abstract
        } else {
            $this->globalAfterResolvingCallbacks[] = $callback;
        }
    }

    /**
     * Get the type hint for this closure's first argument.
     *
     * @param  \Closure  $callback
     * @return mixed
     */
    // hint is type  or a way
    protected function getFunctionHint(Closure $callback)
    {
        $function = new ReflectionFunction($callback);// get the new Reflection Function

        if ($function->getNumberOfParameters() == 0) {
            return;
        }// if $function

        $expected = $function->getParameters()[0];

        if (! $expected->getClass()) {// getClass
            return;
        }

        return $expected->getClass()->name;// get the class name.
    }
    // sorry ,this too easy
0
0

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