2

[UserFrosting 0.3.1]

他の UserFrosting アーキテクチャをバイパスして、カスタム PHP ファイルを実行したいと考えています。

Slim's$app->render("myfile.php")は動作しないようです。テーマ ディレクトリに twig ファイルが必要であり、PHP スクリプトは実行されません。

この制限を回避するにはどうすればよいですか?

私が達成しようとしていることに関する詳細情報:

カスタム PHP ファイルでファイル アップロード スクリプトを作成しました。$_FILESユーザー フォーム (UserFrosting ダッシュボード) から POST された配列を使用して、ユーザー ファイルのアップロードを処理し、いくつかの処理作業を行います。

$_FILESカスタム UserFrosting のコントローラー クラスを介してデータにアクセスできませんでした。これが、ルート ディレクトリにプレーンな古い外部 PHP ファイルを使用した理由であり、それは機能します。

今、基本的なユーザー認証/権限を強制するために、Slim を介してその PHP ファイルにルーティングしようとしています。

4

1 に答える 1

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";
});
于 2016-08-12T04:06:37.013 に答える