尝试将函数作为参数传递 "Function name must be a string"
Trying To Pass Functions as Paramater Gives "Function name must be a string"
所以我正在为 php 使用 Slim 框架开发一个应用程序,我正在尝试编写自定义路由 "helper" 以使添加路由更容易一些,但我收到了错误"Function name must be a string" 尝试 运行 代码时。
这是我的路线助手:
<?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();
});
我一直在寻找解决方案大约一个小时,如有任何帮助,我们将不胜感激。
尝试以下
<?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;
});
}
}
所以我正在为 php 使用 Slim 框架开发一个应用程序,我正在尝试编写自定义路由 "helper" 以使添加路由更容易一些,但我收到了错误"Function name must be a string" 尝试 运行 代码时。
这是我的路线助手:
<?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();
});
我一直在寻找解决方案大约一个小时,如有任何帮助,我们将不胜感激。
尝试以下
<?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;
});
}
}