如何在slim 3框架中调用commoly使用的函数?

时间:2016-04-24 07:51:42

标签: php slim slim-3

我在Slim 3 MVC框架中构建我的网站。我需要为控制器调用一些常用的函数(例如:对于页面标题的别名,我使用的是一个名为function getAlias(){.....}的函数。)

我必须在哪里创建这些功能?如何调用内部控制器?

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。如果这些函数没有副作用,那么一个选项就是让一个带有静态方法的实用程序类。

另一个选择是从公共类扩展所有路由操作并使用:

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

如果功能是域层的一部分,则将这些类作为依赖项注入路由操作。