呈现自定义 PHP 代码 [UserFrosting/Slim]

Rendering custom PHP code [UserFrosting/Slim]

[用户结霜 0.3.1]

我想执行自定义 PHP 文件,绕过其他 UserFrosting 架构。

Slim 的$app->render("myfile.php") 似乎不起作用。它期望主题目录中有一个 twig 文件,它不会执行 PHP 脚本。

如何绕过此限制?

关于我正在努力实现的目标的详细信息:

我在自定义 PHP 文件中制作了文件上传脚本。它使用从用户表单(来自 UserFrosting 仪表板)发布的 $_FILES 数组来处理用户文件上传并进行一些处理工作。

我无法通过自定义 UserFrosting 的控制器 class 访问 $_FILES 数据。这就是为什么我在根目录中使用了一个普通的旧外部 PHP 文件,并且它有效。

现在我希望通过 Slim 路由到那个 PHP 文件,以强制执行基本用户 authentication/permissions

一般来说,我不建议使用这种方法来设计一个从长远来看易于管理的应用程序。 $_FILES 是一个超全局的,因此应该可以从任何地方访问 - 即使是在 class 方法中。所以,我不确定为什么您会在控制器中访问它时遇到问题。

但是,如果您确实需要调用包含程序代码的独立 PHP 文件,您始终可以在路由闭包中使用普通的旧 include

$app->get('/my-route/?', function () use ($app) {    

    // Access-controlled page
    if (!$app->user->checkAccess('uri_my_route')) {
        $app->notFound();
    }

    include "path/to/myfile.php";
});