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

每天laravel-20160817| Container -20

时间:2016-05-30 16:03:15      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:function   abstract   return   

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


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

每天laravel-20160817| Container -20

标签:function   abstract   return   

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

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