Slim 框架学习,第十二天 _Router(三)

来源:互联网 发布:汽车导航软件 编辑:程序博客网 时间:2024/06/06 01:34

导读:昨天我们学习了一下路由的接口 RouterInterface,今天我们看下,路由类的实现

先看下面两段代码:

Slim/DefaultServicesProvider.php $container['router'] = function ($container) {                $routerCacheFile = false;                if (isset($container->get('settings')['routerCacheFile'])) {                    $routerCacheFile = $container->get('settings')['routerCacheFile'];                }                $router = (new Router)->setCacheFile($routerCacheFile);                if (method_exists($router, 'setContainer')) {                    $router->setContainer($container);                }                return $router;            };

这段代码就是容器初次加载的时候,路由的生成过程
我们在看下路由类实例化的过程

 public function __construct(RouteParser $parser = null)    {        $this->routeParser = $parser ?: new StdParser;        var_dump($this->routeParser);die();    }//打印结果如下,因为初次实例化的时候,并没有传递参数object(FastRoute\RouteParser\Std)#22 (0) { } 

先学习下 setCacheFile 方法

public function setCacheFile($cacheFile)    {        if (!is_string($cacheFile) && $cacheFile !== false) {            throw new InvalidArgumentException('Router cacheFile must be a string or false');        }        $this->cacheFile = $cacheFile;        if ($cacheFile !== false && !is_writable(dirname($cacheFile))) {            throw new RuntimeException('Router cacheFile directory must be writable');        }        return $this;    }

这里就设置了一下cacheFile,但是究竟设置的是多少呢?我们看下,前面的两段代码

 $routerCacheFile = false;  if (isset($container->get('settings')   ['routerCacheFile']))   {     $routerCacheFile = $container->get('settings')['routerCacheFile'];  } $router = (new Router)->setCacheFile($routerCacheFile);

问题:这里的$container->get(‘settings’)[‘routerCacheFile’]又是多少呢?
我们回到容器类中查看一番,原来如此

Slim/Container.phpprivate $defaultSettings = [        'httpVersion' => '1.1',        'responseChunkSize' => 4096,        'outputBuffering' => 'append',        'determineRouteBeforeAppMiddleware' => false,        'displayErrorDetails' => false,        'addContentLengthHeader' => true,        'routerCacheFile' => false, //来自于这里,这下真相大白    ];

结束语:今天就到这里,明天继续
美好的一天,加油

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 刚怀孕喝了啤酒怎么办 受风怎么办最快最有效 孕妇后背受风了怎么办 肩膀和后背受风怎么办 手指关节杵肿了怎么办 骨关节退行性变怎么办 疼风脚趾肿了怎么办 痛风脚右侧肿了怎么办 痛风引起的脚肿怎么办 老人腰闪了该怎么办 腰闪了站不起来怎么办 又怕冷又爱上火怎么办 肝上多发小囊肿怎么办 5岁宝宝咳嗽厉害怎么办 5岁宝宝咳嗽有痰怎么办 生川乌外贴中毒怎么办 7个月宝宝流鼻涕怎么办 脸上皮肤毛孔粗大有黑头怎么办 嗓子长了个囊肿怎么办 食管胃粘膜异位怎么办 狗狗肿瘤破了怎么办 婴儿胃食道反流怎么办 小儿胃食道反流怎么办 放疗后咳嗽痰多怎么办 胃息肉是恶性的怎么办 老是胃疼,胃胀怎么办 吃完饭之后胃胀怎么办 胃痛胃胀怎么办能缓解 胃胀不消化怎么办快速解决 便秘肛裂了好痛怎么办 胃消化慢还便秘怎么办 11个月婴儿便秘怎么办 80多岁老人便秘怎么办 狗狗便秘拉不出来怎么办 2个月幼犬便秘怎么办 狗狗便秘怎么办吃什么 痔疮又痛又痒怎么办 痔疮肉球特别痒怎么办 长了个小痔疮怎么办 产后4天没大便怎么办 7个月孕妇痔疮怎么办