Es gibt eine Reihe von Möglichkeiten, dies zu tun. Wenn die Funktionen keine Nebenwirkungen haben, dann wäre eine Option, eine Utilities-Klasse mit statischen Methoden darin zu haben.
wäre eine weitere Option sein, alle Aktionen Ihrer Route von einer gemeinsamen Klasse zu erweitern und diese verwenden:
// CommonAction.php
class CommonAction
{
protected function getAlias() { }
}
// HomeAction.php
class HomeAction extends CommonAction
{
public function __construct(/*dependencies here*/) { }
public function __invoke($request, $response, $args) {
// route action code here
return $response;
}
}
// index.php
$app = new Slim\App(require('settings.php'));
$container = $app->getContainer();
$container[HomeAction::class] = function ($c) {
return new HomeAction(/*dependencies*/);
}
$app->get('/', HomeAction::class);
$app->run();
Wenn die Funktionalität Teil Ihrer Domain Schicht ist, dann diese Klassen in Ihre Route Aktionen als Abhängigkeit injizieren .