2016-04-24 2 views

Antwort

0

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 .

Verwandte Themen