2015-06-28 149 views
2

我写了一个自定义的框架,使用飞行框架作为使用AngularJS我们的系统中的实例来处理我们REST API电话。我有一个特定的文件有问题,我不能前进。我有一个index.php文件在/api/v1/文件夹中建立一个框架的新对象和处理路线吧:PHP REST API错误

<?php 
require '.././libs/Fury/autoload.php'; 
require_once '.././system/database.php'; 
require_once('.././helpers/passwordHash.php'); 

use Fury\Engine; 
$db = is_null(DB_HOST) ? null : new Database(DB_HOST, DB_USER, DB_PASS, DB_DATABASE); 
$app = new Engine(); 

require_once('auth.php'); 
require_once('projects.php'); 

function echoResponse($status_code, $response) { 
    global $app; 
    $app->json($response, $status_code); 
} 

$app->start(); 

我已经要求auth.php和projects.php对于不同的途径在该文件中,所以我可以保持较好跟踪他们。这是一个auth.php路线这工作得很好,并返回会话数据:

<?php 
$app->route('GET /session', function() use ($db) { 
    $session = Session::getSession(); 
    echoResponse(200, $session); 
}); 

但由于某些原因projects.php给我一个错误与这条路线

<?php 
$app->route('GET /projects', function() use($db) { 
    $rows = $db->all("SELECT * FROM projects"); 
    echoResponse(200, $rows); 
}); 

错误消息:

Notice: Undefined variable: app in \project\api\v1\projects.php on line 3 

Fatal error: Call to a member function route() on a non-object in \project\api\v1\projects.php on line 3 

基本上$应用程序是没有来过或别的东西是错误的,我只是无法弄清楚。有人有主意吗?

回答

0

好了,这显然是由于该文件是projects.php,这是GET /projects此特定错误被引起的。我不知道为什么,但将projects.php改为project.php修复了这个问题。