Home  >  Article  >  Backend Development  >  每天laravel-20160819| Container -22

每天laravel-20160819| Container -22

WBOY
WBOYOriginal
2016-06-23 13:03:35820browse

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


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn