所以我正在使用Slim框架为php开发一个应用程序,我正在尝试编写一个自定义路由" helper"使添加路由更容易一点,我得到错误"函数名称必须是字符串"在尝试运行代码时。
这是我的路线助手:
<?php
namespace XSC\API\Core;
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
class RouteHelper {
public static $request;
public static $response;
public static function registerRoute($route, $callback) {
Slim::$instance->get($route, function (Request $request, Response $response, array $args) {
self::$request = $request;
self::$response = $response;
$callback(self::$request, self::$response, $args);
return self::$response;
});
}
}
这就是路线:
<?php
namespace XSC\API\Routes;
use XSC\API\Core\RouteHelper;
use XSC\API\Minecraft;
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
RouteHelper::registerRoute('/minecraft/test', function (Request $request, Response $response, array $args) {
Minecraft\Rcon::connect('all-the-mods-');
$response->getBody()->write(Minecraft\Rcon::command("testing 123"));
Minecraft\Rcon::disconnect();
});
我一直在寻找一个小时左右的解决方案,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
尝试使用以下
<?php
namespace XSC\API\Core;
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
class RouteHelper {
public static $request;
public static $response;
public static function registerRoute($route, $callback) {
Slim::$instance->get($route, function (Request $request, Response $response, array $args) use ($callback) {
self::$request = $request;
self::$response = $response;
$callback(self::$request, self::$response, $args);
return self::$response;
});
}
}