Рендеринг пользовательского кода PHP [UserFrosting / Slim]

[UserFrosting 0.3.1]

Я хочу выполнить пользовательский файл PHP, минуя другую архитектуру UserFrosting.

Слима $app->render("myfile.php") не похоже на работу. Он ожидает файл ветки в каталоге тем, он не будет выполнять скрипт PHP.

Как мне обойти это ограничение?

Подробная информация о том, чего я пытаюсь достичь:

Я сделал скрипт загрузки файла в произвольном PHP-файле. Он использует $_FILESмассив, POSTed из пользовательской формы (из панели инструментов UserFrosting), для обработки загрузки пользовательских файлов и выполнения некоторой обработки.

Мне не удалось получить доступ к $_FILES данные через пользовательский класс контроллера UserFrosting. Вот почему я использовал обычный старый внешний PHP-файл в корневом каталоге, и он работает.

Теперь я ищу, чтобы направить к этому файлу PHP через Slim, чтобы обеспечить базовый пользователь аутентификации / разрешения.

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";
});
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]