修剪传递类实例到$ app

时间:2013-12-16 19:35:57

标签: php slim

<?php
  require 'vendor/autoload.php';

  // Include all controllers
  foreach(glob("controllers/*.php") as $controller)
  {
    include $controller;
  }

  // Instantiate a new Slip application
  $app = new \Slim\Slim(array(
    'debug' => true
  ));

  // HOME CONTROLLER
  $home = new Home;
  $vr = $home->index();

  // Register application routes
  $app->get('/', function () {
      echo $vr;
  });

  // Run application
  $app->run();

这是我的控制器我想使用控制器而不是将所有内容保存在这个单独的文件中。无论如何,我有一个控制器地图,我保留所有控制器。我会在开始时自动将它们全部包含在内但是我似乎无法将$home变量传递给get()方法,因此我可以调用$vr来缩进它或$home->index()

1 个答案:

答案 0 :(得分:6)

你可以将它传递给你的函数:

..., function () use($home){
  ...

我认为Slim还将$app作为函数的第一个参数传递。

编辑:实际上它不是according to its docs,所以你必须在use语句中传递它(函数参数是URL参数):

$app->get('/', function () use($home, $app) {
   $vr = $home->index();
   echo $vr;
   // $app is accesible too...
});