实例化后为 Slim 设置自定义视图

Set Custom Views for Slim after it's been instantiated

我在一个非常古老的遗留网站上工作(想想 PHP 4 个构造)。我正在缓慢但肯定地重构大部分代码。因为代码量不是很大,所以我决定使用 Slim。

我正在使用自定义视图,并且可能在不久的将来我会选择一个诱人的引擎,可能是 Twig。

长话短说,我正在自动加载 Custom Views 文件夹,以便随时随地使用它们。就我对 Slim 的理解而言,要使用自定义视图,我需要执行以下操作:

$app = new Slim(array(
    'view' => 'CustomView'
));

这一切都很好而且易于使用,但是我希望(如果可能的话)Slim 作为一些基础 class(以及其他东西)的 属性 加载) 并让其他 classes 扩展那个。显然这会带来问题,因为我只能有一个自定义视图。

是否有其他方法可以在实例化后将自定义视图传递给 Silm?

可能是这样的:

$app = new Slim();

$app->setView(Custome View Goes Here);

我在 Google 上找不到任何相关内容。

以下应该有效。示例取自 documentation.

The View class or instance used by the Slim application. To change this > setting after instantiation you need to use the Slim application's view() method.

// During instantiation
$app = new \Slim\Slim(array(
    'view' => new \My\View()
));

// After instantiation
$app->view(new \My\View());