[UserFrosting 0.3.1]
我想绕过其他UserFrosting架构来执行自定义PHP文件。
Slim的$app->render("myfile.php")
似乎不起作用。它期望在themes目录中有一个twig文件,它不会执行PHP脚本。
如何绕过此限制?
我在自定义PHP文件中创建了一个文件上传脚本。它使用$_FILES
数组,从用户表单(来自UserFrosting仪表板)发布,处理用户文件上传并执行一些处理工作。
我无法通过自定义UserFrosting的控制器类访问$_FILES
数据。这就是为什么我在根目录中使用了一个普通的旧外部PHP文件,它可以工作。
现在我希望通过Slim路由到该PHP文件,以强制执行基本用户身份验证/权限。
答案 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";
});