• 技术文章 >后端开发 >php教程

    每天laravel-20160819| Container -22

    2016-06-23 13:03:35原创464

       /**    * Get the alias for an abstract if available.    *    * @param  string  $abstract    * @return string    */   protected function getAlias($abstract)   {// get Alias ,if has aliases return it ,or return it self       return isset($this->aliases[$abstract]) ? $this->aliases[$abstract] : $abstract;   }// Get the alias for an abstract if available.   /**    * Get the container's bindings.    *    * @return array    */   public function getBindings()   {       return $this->bindings;// return it self like a big _get function   }   /**    * Drop all of the stale instances and aliases.    *    * @param  string  $abstract    * @return void    */   protected function dropStaleInstances($abstract)   {       unset($this->instances[$abstract], $this->aliases[$abstract]);   }// drop every thing about the abstract ,// use the system function unset   /**    * Remove a resolved instance from the instance cache.    *    * @param  string  $abstract    * @return void    */   public function forgetInstance($abstract)   {       unset($this->instances[$this->normalize($abstract)]);   }// in php ,drop and remove ,all about this use the unset  even forget   /**    * Clear all of the instances from the container.    *    * @return void    */   public function forgetInstances()   {       $this->instances = [];   }// clear all drop remove forget ,this is better then unset(self)   /**    * Flush the container of all bindings and resolved instances.    *    * @return void    */   public function flush()   {       $this->aliases = [];       $this->resolved = [];       $this->bindings = [];       $this->instances = [];   }// flush means to refresh it ,so like empty this alias resolved bindings instances   /**    * Set the globally available instance of the container.    *    * @return static    */   public static function getInstance()   {       return static::$instance;// return the $instance not the self instance.   }   /**    * Set the shared instance of the container.    *    * @param  \Illuminate\Contracts\Container\Container  $container    * @return void    */   public static function setInstance(ContainerContract $container)   {       static::$instance = $container;   }// set the instance use the container   /**    * Determine if a given offset exists.    *    * @param  string  $key    * @return bool    */   public function offsetExists($key)   {       return isset($this->bindings[$this->normalize($key)]);   }// determine like check ,// if has the bindings been set return true   /**    * Get the value at a given offset.    *    * @param  string  $key    * @return mixed    */   public function offsetGet($key)   {       return $this->make($key);// make is too powerful   }// return it a   /**    * Set the value at a given offset.    *    * @param  string  $key    * @param  mixed   $value    * @return void    */   public function offsetSet($key, $value)   {       // If the value is not a Closure, we will make it one. This simply gives       // more "drop-in" replacement functionality for the Pimple which this       // container's simplest functions are base modeled and built after.       if (! $value instanceof Closure) {           $value = function () use ($value) {               return $value;           };       }// if the value is a Closure.       $this->bind($key, $value);// use bind function   }   /**    * Unset the value at a given offset.    *    * @param  string  $key    * @return void    */   public function offsetUnset($key)   {       $key = $this->normalize($key);       unset($this->bindings[$key], $this->instances[$key], $this->resolved[$key]);   }// unset all offset   /**    * Dynamically access container services.    *    * @param  string  $key    * @return mixed    */   public function __get($key)   {       return $this[$key];// a big   }   /**    * Dynamically set container services.    *    * @param  string  $key    * @param  mixed   $value    * @return void    */   public function __set($key, $value)   {       $this[$key] = $value; // big set   }


    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:本地环境phpStorm10+XDebug配置和断点调试 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 手写PHP API框架(三)之反射介绍• 手写PHP API框架(二)之Composer的安装使用• 手写PHP API框架(一)之PSR规范• 聊聊php怎么让Swoole/Pool进程池实现Redis持久连接• 一文解析PHP元转分的错误示范(附代码实例)
    1/1

    PHP中文网