dongyuxin5353 2014-06-27 05:42
浏览 38

SLIM使用TWIG从功能中分离出路由

If I want to separate out the route from the function what is the best way as I still need to use($app,$twig)

$app->get('/app(/:date(/:time))', function ($date = null,$time = null) use ($app,$twig)     {       
    //do some stuff using TWIG
}); 
 $app->run();

new route, function function app(...

$app->get('/app(/:date(/:time))', 'app');

Edit 1 - Next try using a class give a `Undefined variable: twig'

$actions = new Actions($app, $twig);

$app->get('/app(/:date(/:time))', [$actions, 'app']);   
$app->run();


class Actions {

    protected $app, $twig;

    public function __construct($app, $twig) {
        $this->app  = $app;
        $this->twig = $twig;
    }

    public function app($date = null,$time = null) {
        // print_r($:date);

    //  get some data using date time

        $template = $twig->loadTemplate('template.php');
            echo $template->render(array(
            ........
            ));
    }
}
  • 写回答

1条回答 默认 最新

  • douzhi1937 2014-06-27 06:13
    关注
    $appFunc = function () use ($app, $twig) ...
    $app->get(..., $appFunc);
    

    or:

    class Actions {
    
        protected $app, $twig;
    
        public function __construct($app, $twig) {
            $this->app  = $app;
            $this->twig = $twig;
        }
    
        public function app() ...
    
    }
    
    $actions = new Actions($app, $twig);
    
    $app->get(..., [$actions, 'app']);
    

    or:

    function app($app, $twig) {
        return function () use ($app, $twig) ...
    }
    
    $app->get(..., app($app, $twig));
    

    Or coughglobalcough.

    评论

报告相同问题?

悬赏问题

  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?