每天laravel-20160819| Container -22

原创 2016年06月01日 09:05:49
    /**
     * 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
    }
版权声明:随便转载了..............

Laravel源码解析二 【服务容器Container】

上一节是关于laravel的一次请求的生命周期经过的过程来讲的。 这一节讲一下laravel的核心东西,-Container容器。首先,推荐你们先去看一下学院君的Laravel 服务容器实例教程 —...

关于laravel Container 的最初想法

关于laravel Container 的最初想法初学laravel框架,感觉很烦,各种调用 目前虽然没开始项目,但是记录一些东西 总是好的 对于laravel容器IoC的一些理解,自己的理解...

Laravel 4 IoC Container

IoC stands for Inversion of Control, and it is effectively just a fancy way of describing a concept ...

每天进步一点点——磁盘损坏导致container-sync服务退出(Swift Bug )

分布式集群中的swift服务状态监控让我们发现了一个swift的小Bug
  • cywosp
  • cywosp
  • 2014年04月16日 15:14
  • 5496

每天laravel-简单的运行流程

摘要: 每天laravel-简单的运行流程 第一天:开始学习laravel 框架 首先 了解 laravel的运行流程   第一步:包含自动加载文件 require __DIR__.'...
  • mei_520
  • mei_520
  • 2017年06月02日 08:59
  • 228

如何使用 OpenStack CLI - 每天5分钟玩转 OpenStack(22)

本节首先讨论 image 删除操作,然后介绍 OpenStack CLI 的使用方法,最后讨如何 Troubleshoot。 Web UI 删除 image admin 登录后,P...

7月22日本人正在学习Java每天所学晚上都会在博客更新,如果错了可以在评论指出。

复习 一、实例内部类:非静态的成员内部类 outer.Inner inner =new outer().new Inner(); 静态内部类: outer.Inner inner =new outer...

每天一个linux命令(22):find 命令的参数详解

find一些常用参数的一些常用实例和一些具体用法和注意事项。 1.使用name选项: 文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。  可以使用某种文件名模式来...
  • wxzyq
  • wxzyq
  • 2013年11月30日 13:06
  • 396

每天一个小知识点22(cookie)

javascript 读取cookie值     function getCookieVal(cookieName)    {         var  search  =  cooki...

每天学习一算法系列(22)(在字符串中找出连续最长的数字串,并把这个串的长度返回)

题目: 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr) 功能: 在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这...
  • yuucyf
  • yuucyf
  • 2011年08月10日 17:36
  • 2752
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:每天laravel-20160819| Container -22
举报原因:
原因补充:

(最多只允许输入30个字)