2

[UserFrosting 0.3.1]

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

斯利姆的$app->render("myfile.php")似乎不起作用。它需要主题目录中的 twig 文件,它不会执行 PHP 脚本。

如何绕过这个限制?

有关我要实现的目标的详细信息:

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

我还没有设法$_FILES通过自定义 UserFrosting 的控制器类访问数据。这就是为什么我在根目录中使用一个普通的旧外部 PHP 文件,它可以工作。

现在我希望通过 Slim 路由到该 PHP 文件,以强制执行基本的用户身份验证/权限

4

1 回答 1

2

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

然而,如果你真的需要调用一个包含过程代码的独立 PHP 文件,你总是可以include在路由闭包中使用一个普通的 old:

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

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

    include "path/to/myfile.php";
});
于 2016-08-12T04:06:37.013 回答