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, //来自于这里,这下真相大白 ];
结束语:今天就到这里,明天继续
美好的一天,加油
阅读全文
0 0
- Slim 框架学习,第十二天 _Router(三)
- Slim 框架学习,第十天 _Router(一)
- Slim 框架学习,第十六天 _Router(七)
- Slim 框架学习,第十一天 _Router(二)
- Slim 框架学习,第十三天 _Router(四)
- Slim 框架学习,第十四天 _Router(五)
- Slim 框架学习,第十五天 _Router(六)
- Slim 框架学习,第十七天 _Router(八)
- Slim 框架学习,第十八天 _Router(九)
- Slim 框架学习,第十九天 _Router(十)
- Slim 框架学习,第六天 _Container(三)
- Slim 框架学习,第二天
- Slim 框架学习,第四天
- Slim 框架学习,第四天 _Container(一)
- Slim 框架学习,第一天
- Slim 框架学习,第三天
- Slim 框架学习,第五天 _Container(二)
- Slim 框架学习,第七天 _Container(四)
- cc攻击ddos攻击怎么办?比较有效的解决方案分享给大家
- MySQL-1-基础语法练习
- JAVA的日期类DATE、日期格式化、Calendar日历类
- 楼层滚动(JQ)
- Shader小常识之——模型法线和法线纹理是如何工作的
- Slim 框架学习,第十二天 _Router(三)
- 使用模态框进行登录
- 图论基础Dijsktra:Poj1062
- Struts2_ajax交互
- ⚔疯狂输出⚔ 基本数据类型 与包装类
- 读文件
- ES6 Generator
- 工作一到五年的Java程序员遇到瓶颈应该如何提升自己突破
- Chapter 7Greenplum Database数据类型