eCo*_*Evo 2 php laravel laravel-4
在我开发的大多数 Web 应用程序中,我可以创建一个简单的测试脚本 (test.php),加载所有依赖项(通常通过自动加载器),设置数据库连接,调用任何类方法,然后检查它们的结果返回以确保一切正常。
例子:
$test = new Item;
var_dump($test->getItemStatus($itemid));
Run Code Online (Sandbox Code Playgroud)
上面将显示它为该 itemid 返回的值的良好输出。
对于 Laravel,仅仅执行这个简单的测试似乎要复杂得多……或者也许我让它过于复杂,并且有一个简单的方法可以做到这一点。
假设我想在 Laravel 4 应用程序中做同样的事情。我想测试使用 model 的getItemStatus名为的控制器中方法的输出。ItemsControllerItems
如果我尝试以下操作,则会收到Symfony \ Component \ Debug \ Exception \ FatalErrorException错误:
$items = App::make('ItemsController')->getItemStatus($itemid);
Run Code Online (Sandbox Code Playgroud)
如果我在routes.php中定义这条路由:
Route::get('items/get-item-status', array('as' => 'getItemStatus', 'uses' => 'ItemsController@getItemStatus'));
Run Code Online (Sandbox Code Playgroud)
然后尝试以下操作,我得到Symfony\Component\HttpKernel\Exception\NotFoundHttpException请求输出:
$request = Request::create('items/get-item-status', 'GET', array());
$items = Route::dispatch($request)->getContent();
Run Code Online (Sandbox Code Playgroud)
在我看来,Laravel 要简单得多,也许这就是为什么你可能会想太多。
让我们从一个非常基本的路由器开始。以下是在基本路由器/控制器中使用 Laravel 应用程序进行简单调试的一些选项:
Route::get('test', function() {
$test = new Item;
dd($test);
Log::info($test); // will show in your log
var_dump($test);
});
Run Code Online (Sandbox Code Playgroud)
现在请执行以下操作:
http://yourserver.com/test
Run Code Online (Sandbox Code Playgroud)
它应该停止在
dd($test);
Run Code Online (Sandbox Code Playgroud)
Vardumping 并在那条线上死去。评论它,再试一次,等等。
所有这些也可以在控制器中工作:
Route::get('test/{var?}', 'TestController@index');
Run Code Online (Sandbox Code Playgroud)
同样的方式:
class TestController extends Controller {
public function index($var = null)
{
$test = new Item;
dd($var);
dd($test);
Log::info($var);
Log::info($test);
var_dump($test);
var_dump($var);
}
}
Run Code Online (Sandbox Code Playgroud)
您的路线:
Route::get('items/get-item-status', array('as' => 'getItemStatus', 'uses' => 'ItemsController@getItemStatus'));
Run Code Online (Sandbox Code Playgroud)
如果您遵循以下操作,也应该有效:
http://yourserver.com/items/get-item-status
Run Code Online (Sandbox Code Playgroud)
如果没有,请尝试遵循
http://yourserver.com/public/index.php/items/get-item-status
Run Code Online (Sandbox Code Playgroud)
要不就
http://yourserver.com/public/items/get-item-status
Run Code Online (Sandbox Code Playgroud)
因为您可能存在虚拟主机或 .htaccess 配置问题。
| 归档时间: |
|
| 查看次数: |
22434 次 |
| 最近记录: |