Slim 框架学习,第三天

紧接着第二天的内容

先上一段代码

public function offsetGet($id)
    {
        echo $id."<br/>";
        if (!isset($this->keys[$id])) {
            throw new UnknownIdentifierException($id);
        }
        if (
            isset($this->raw[$id])
            || !is_object($this->values[$id])
            || isset($this->protected[$this->values[$id]])
            || !method_exists($this->values[$id], '__invoke')
        ) {
            return $this->values[$id];
        }
        if (isset($this->factories[$this->values[$id]])) {
            return $this->values[$id]($this);
        }
        echo $id.'1'."<br/>";
        $raw = $this->values[$id];
        echo $id.'2'."<br/>";
        $val = $this->values[$id] = $raw($this);
      //  die();
       // echo $id.'3'.'___';

        $this->raw[$id] = $raw;

        $this->frozen[$id] = true;
        echo "<pre>";
        echo $id.'___';
        //var_dump($this->values);
        echo "</pre>";
        die();
        return $val;
    }

返回结果让我很想不通

router
router1
router2
settings
settings1
settings2
settings___
为何传进去的是router,却执行了settings 。经过调试发现
val= this->values[ id]= raw($this);这一句,导致的原因,
但是为什么会出现这种情况,现在还没搞明白。

回到第一天的index.php 文件

require 'vendor/autoload.php';

$app = new Slim\App();

$app->get('/hello/{name}', function ($request, $response, $args) {
    return $response->write("Hello, " . $args['name']);
});
echo "<pre>";
var_dump($app);
echo "</pre>";die();
$app->run();

返回结果如下

object(Slim\App)#2 (3) {
[“container”:”Slim\App”:private]=>
object(Slim\Container)#3 (7) {
[“defaultSettings”:”Slim\Container”:private]=>
array(7) {
[“httpVersion”]=>
string(3) “1.1”
[“responseChunkSize”]=>
int(4096)
[“outputBuffering”]=>
string(6) “append”
[“determineRouteBeforeAppMiddleware”]=>
bool(false)
[“displayErrorDetails”]=>
bool(false)
[“addContentLengthHeader”]=>
bool(true)
[“routerCacheFile”]=>
bool(false)
}
….. // 主要设置了路由信息
[“router”]=>
object(Slim\Router)#21 (8) {
[“container”:protected]=>
RECURSION
[“routeParser”:protected]=>
object(FastRoute\RouteParser\Std)#22 (0) {
}
[“basePath”:protected]=>
string(0) “”
[“cacheFile”:protected]=>
bool(false)
[“routes”:protected]=>
array(1) {
[“route0”]=>
object(Slim\Route)#23 (13) {
[“methods”:protected]=>
array(1) {
[0]=>
string(3) “GET”
}
[“identifier”:protected]=>
string(6) “route0”
[“name”:protected]=>
NULL
[“groups”:protected]=>
array(0) {
}
[“finalized”:”Slim\Route”:private]=>
bool(false)
[“outputBuffering”:protected]=>
string(6) “append”
[“arguments”:protected]=>
array(0) {
}
[“callable”:protected]=>
object(Closure)#19 (2) {
[“this”]=>
RECURSION
[“parameter”]=>
array(3) {
[“ request]=>string(10)[ response”]=>
string(10) “”
[“$args”]=>
string(10) “”
}
}
[“container”:protected]=>
RECURSION
[“middleware”:protected]=>
array(0) {
}
[“pattern”:protected]=>
string(13) “/hello/{name}”
[“tip”:protected]=>
NULL
[“middlewareLock”:protected]=>
bool(false)
}
}

index.php 中的最后一行 $app->run(); 明天在进行探讨。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值