Организация логики маршрутов Slim 3 API в функции c - PullRequest
0 голосов
/ 09 января 2020

Я хотел бы структурировать API, чтобы отделить организацию маршрутизации от действий в отдельных файлах.

Текущий код не возвращает ошибок, но параметры собраны неправильно.

Существует ли простой способ организации в функции без необходимости classes или __invoke ?, приложению это не требуется.

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();

источник / маршруты / маршруты. php

$app->group('/v1', function () use ($app) {
    $app->post('/register', 'registerParticipant');        
});

источник / промежуточное ПО / registerParticipant. php

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

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

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

  echo "foo= ".$foo;

  // more app logic

}

1 Ответ

0 голосов
/ 10 января 2020

Замена $foo= $request->post('foo'); на $foo= $request->getParam('foo'); сделала свое дело.

src / middleware / registerParticipant. php

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

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

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

  echo "foo= ".$foo;

  // more app logic

}
...