매일laravel-20160819|Container -22

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

좋은 웹페이지 즐겨찾기