渲染自定义PHP代码[UserFrosting / Slim]

时间:2016-08-10 09:51:03

标签: php slim userfrosting

[UserFrosting 0.3.1]

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

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

如何绕过此限制?

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

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

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

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

1 个答案:

答案 0 :(得分:2)

总的来说,我建议不要采用这种方法来设计一个易于长期管理的应用程序。 $_FILES是一个超全局,所以应该可以从任何地方访问 - 甚至可以从类方法中访问。所以,我不确定为什么你在控制器中访问它时会遇到麻烦。

但是,如果您确实需要调用包含过程代码的独立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";
});