Php 将Slim 3 API路由逻辑组织到函数中

Php 将Slim 3 API路由逻辑组织到函数中,php,routing,middleware,slim,slim-3,Php,Routing,Middleware,Slim,Slim 3,我希望构造API,以便在单独的文件中将路由组织和操作分开 当前代码未返回任何错误,但未正确收集参数 是否有一种简单的方法可以组织成函数而不需要类,或\u调用?,应用程序不需要它 public/index.php use \Psr\Http\Message\ServerRequestInterface as Request; use \Psr\Http\Message\ResponseInterface as Response; require '../vendor/autoload.php';

我希望构造API,以便在单独的文件中将路由组织和操作分开

当前代码未返回任何错误,但未正确收集参数

是否有一种简单的方法可以组织成函数而不需要
,或
\u调用
?,应用程序不需要它

public/index.php

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require '../vendor/autoload.php';

$app = new \Slim\App;

foreach (glob("../src/middleware/*.php") as $middleware) {
  require $middleware;
}

require '../src/routes/routes.php';

$app->run();
$app->group('/v1', function () use ($app) {
    $app->post('/register', 'registerParticipant');        
});
require '../lib/qrlib/vendor/qrlib.php';

function registerParticipant($request, $response, $args) {

  // demo for testing
  $foo= $request->post('foo'); 

  echo "foo= ".$foo;

  // more app logic

}
require '../lib/qrlib/vendor/qrlib.php';

function registerParticipant($request, $response, $args) {

  // demo for testing
  $foo= $request->getParam('foo'); 

  echo "foo= ".$foo;

  // more app logic

}
src/routes/routes.php

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require '../vendor/autoload.php';

$app = new \Slim\App;

foreach (glob("../src/middleware/*.php") as $middleware) {
  require $middleware;
}

require '../src/routes/routes.php';

$app->run();
$app->group('/v1', function () use ($app) {
    $app->post('/register', 'registerParticipant');        
});
require '../lib/qrlib/vendor/qrlib.php';

function registerParticipant($request, $response, $args) {

  // demo for testing
  $foo= $request->post('foo'); 

  echo "foo= ".$foo;

  // more app logic

}
require '../lib/qrlib/vendor/qrlib.php';

function registerParticipant($request, $response, $args) {

  // demo for testing
  $foo= $request->getParam('foo'); 

  echo "foo= ".$foo;

  // more app logic

}
src/middleware/registerParticipant.php

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require '../vendor/autoload.php';

$app = new \Slim\App;

foreach (glob("../src/middleware/*.php") as $middleware) {
  require $middleware;
}

require '../src/routes/routes.php';

$app->run();
$app->group('/v1', function () use ($app) {
    $app->post('/register', 'registerParticipant');        
});
require '../lib/qrlib/vendor/qrlib.php';

function registerParticipant($request, $response, $args) {

  // demo for testing
  $foo= $request->post('foo'); 

  echo "foo= ".$foo;

  // more app logic

}
require '../lib/qrlib/vendor/qrlib.php';

function registerParticipant($request, $response, $args) {

  // demo for testing
  $foo= $request->getParam('foo'); 

  echo "foo= ".$foo;

  // more app logic

}

替换
$foo=$request->post('foo')
$foo=$request->getParam('foo')成功了

src/middleware/registerParticipant.php

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require '../vendor/autoload.php';

$app = new \Slim\App;

foreach (glob("../src/middleware/*.php") as $middleware) {
  require $middleware;
}

require '../src/routes/routes.php';

$app->run();
$app->group('/v1', function () use ($app) {
    $app->post('/register', 'registerParticipant');        
});
require '../lib/qrlib/vendor/qrlib.php';

function registerParticipant($request, $response, $args) {

  // demo for testing
  $foo= $request->post('foo'); 

  echo "foo= ".$foo;

  // more app logic

}
require '../lib/qrlib/vendor/qrlib.php';

function registerParticipant($request, $response, $args) {

  // demo for testing
  $foo= $request->getParam('foo'); 

  echo "foo= ".$foo;

  // more app logic

}

当您说
参数收集不正确时
,您指的是post参数吗?此代码确实引发错误:
调用未定义的方法Slim\Http\Request::post()