我喜欢使用Slim,但对如何调试它感到很沮丧。假设我有以下路由。我可以做一个cURL请求,看看输出,但是我想通过我的IDE调试器逐行完成脚本,这恰好是NuShere的phpED。虽然我还没有快速弄清楚,我很确定我可以让phpED做一个POST请求,但绝对不是PUT或DELETE请求,所以没有意义。
有没有办法这样做?我可以轻松地强制$_SERVER['REQUEST_URI']
和$_SERVER['REQUEST_METHOD']
任意值,也可以更改$_GET
超全局,但是身体数据(即$_POST
)不是那么简单
<?php
$app = new \Slim\Slim();
$app->get('/books/:id', function ($id) {
//Show book identified by $id
});
$app->post('/books', function () {
//Create book
});
$app->put('/books/:id', function ($id) {
//Update book identified by $id
});
$app->delete('/books/:id', function ($id) {
//Delete book identified by $id
});
$app->get('/toys/:id', function ($id) {
//Show toy identified by $id
});
$app->post('/toys', function () {
//Create toy
});
$app->put('/toys/:id', function ($id) {
//Update toy identified by $id
});
$app->delete('/toys/:id', function ($id) {
//Delete toy identified by $id
});
答案 0 :(得分:0)
根据Blake的评论,我创建了以下方法,并在构造函数中调用它。每次请求后,都会创建一个可以调试的新测试文件。
private function createTest($params,$method)
{
$inputs=print_r($params,1);
$method=strtolower($method);
$method2=($method=='put' || $method=='delete')?'post':$method;
$html=$this->createTestInputs($params,null,null); //array, previous inputs, name prefix
$html=<<<eod
<p>URL: $_SERVER[REQUEST_URI]</p>
<p>METHOD: $method</p>
<p>INPUTS:<pre>$inputs</pre></p>
<form action="$_SERVER[REQUEST_URI]" method="$method2">
$html
<input type="hidden" name="_METHOD" value="$method"/>
<input type="submit" value="Test"/>
</form>
eod;
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/test.php', $html);
}
private function createTestInputs($params,$html,$prefix)
{
foreach($params as $name=>$value) {
if(is_array($value)) {
$html=$this->createTestInputs($value,$html,$name);
}
else {
$html.="<input name='".($prefix?$prefix.'['.$name.']':$name)."' type='hidden' value='$value' />\n";
}
}
return $html;
}
答案 1 :(得分:0)
如果出现异常需要调试信息:
$app->config('debug', true);
您也可以按照此处的说明使用Firebug + FirePHP:https://www.sitepoint.com/debug-php-firebug-firephp/
<强>崔西强>
但我喜欢调试界面,所以我找到了类似这样的东西:https://github.com/nette/tracy
结帐这个要点:https://gist.github.com/1f7/b2d2846777e71f48e43a2ef7acc0a655(它在示例中有一点错误,但你可以处理它)
演示在这里:https://nette.github.io/tracy/tracy-debug-bar.html
我的测试实施的截图:
但我真的建议你使用像PHPStorm
这样的普通IDE,并像老板一样调试你的应用程序(:
观看:https://www.youtube.com/watch?v=rqDDJfG6ip4或者:https://www.youtube.com/watch?v=_U8xrj0-PXU
P.S。有关正确配置Tracy的问题,请写下评论(;
答案 2 :(得分:0)