ファイルエントリの機能と定義
ファイル エントリ定義
6.0 デフォルトのアプリケーション エントリ ファイルは、public/index.php にあります。デフォルトでは、内容は次のとおりです。
// [ 应用入口文件 ] namespace think; require __DIR__ . '/../vendor/autoload.php'; // 执行HTTP应用并响应 $http = (new App())->make('http'); $response = $http->run(); $response->send(); $http->end($response);
特別なカスタマイズ要件がない場合、エントリ ファイルを変更する必要はありません。
エントリ ファイルの場所は、アプリケーションの展開をより安全にするように設計されています。Web アクセス可能な唯一のディレクトリとしてパブリック ディレクトリに従うようにしてください。他のファイルは、Web アクセスできないディレクトリに配置できます。
コンソール エントリ ファイル
アプリケーション エントリ ファイルに加えて、システムはプロジェクトのルート ディレクトリにあるコンソール エントリ ファイルも提供します (これは、ファイルには接尾辞がありません)。
ファイル コードは次のとおりです:
#!/usr/bin/env php <?php namespace think; // 加载基础文件 require __DIR__ . '/vendor/autoload.php'; // 应用初始化 (new App())->console->run();
コンソール エントリ ファイルは、コンソール コマンドを実行するために使用されます。例:
php think version
システムには、一般的に使用されるいくつかの機能が組み込まれています。追加の拡張機能がインストールされると、対応するコンソール コマンドも追加され、すべてこのエントリ ファイルを通じて実行されます。
アプリディレクトリ直下にコントローラー、モデル、ビューなどのクラスライブラリディレクトリがある場合はシングルアプリケーションモード(デフォルトモード)ですが、アプリディレクトリ直下にアプリケーションサブディレクトリを作成すると自動的にシングルアプリケーションモードになります。マルチアプリケーションモードになります。
単一アプリケーションと複数アプリケーションのディレクトリ構造の違いは次のとおりです (主にアプリ ディレクトリ内)。
シングル アプリケーション モード
├─app アプリケーション ディレクトリ
│ §─controller コントローラ ディレクトリ
│ ├─model モデル ディレクトリ
│ § ─ 閲覧 カタログ閲覧
│ └ ─ ... その他のライブラリディレクトリ
# │
## § ─ PUBLIC Web ディレクトリ(外部アクセスディレクトリ)
│ §─index.php │ エントリファイル │ §─router.php クイックテストファイル Apache
├configアプリケーション構成ディレクトリ
#出力 出力 出力 出力 フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド フィールド
##'│ │ v─VIEW カタログの表示
# │ │ ├ ─CONFIG 構成カタログ (推奨)
│ │ └ ─ ... その他の種類のライブラリ ディレクトリ
│ §─adminバックエンド アプリケーション
│ │ §─controller コントローラディレクトリ
│ │ §─model モデルディレクトリ
│ │ ├─view ビューディレクトリ
│ │ ├─config 設定ディレクトリ (優先)
│ │ └ ─ ... より多くの種類のライブラリ ディレクトリ
│
─ パブリック Web ディレクトリ (外部アクセス ディレクトリ)
リライトを使用Apache の
#│
til─config アプリケーション構成ディレクトリ
│ §─index インデックス アプリケーション構成
│ └─admin 管理アプリケーション構成
# │
# ─ Route ルート定義ディレクトリ
# ─ ─index インデックス アプリケーション ルート定義ディレクトリ
# ─ a └ a └ └ └ ─管理者 admin.
##│ ─runtime ランタイム ディレクトリ │ §─index インデックス アプリケーション ランタイム ディレクトリ │ └─admin admin アプリケーション ランタイム ディレクトリ ディレクトリ構造からわかるように、各アプリケーションは比較的独立しており、各アプリケーションには対応するエントリ ファイルがあり、アプリケーションは複数レベルのコントローラを通じてコントローラ グループを維持することもできます。 複数のアプリケーションが異なるエントリを使用する場合、各エントリ ファイルの内容は同じです。デフォルトのエントリ ファイル名 (サフィックスなし) はアプリケーション名です。たとえば、エントリ ファイル名がアプリケーションと一致しない場合は、バックエンド管理アプリケーションの場合、エントリ ファイル名に think.php が使用されている場合、エントリ ファイルを次のように変更する必要があります。// [ 应用入口文件 ] namespace think; require __DIR__ . '/../vendor/autoload.php'; // 执行HTTP应用并响应 $http = (new App())->make('http'); $response = $http->name('admin')->run(); $response->send(); $http->end($response);単一アプリケーション モードとマルチアプリケーション モードは、一部のシステムの値に影響します。このマニュアルの内容をよりよく理解するには、次のシステム パスで表される場所を理解する必要がある場合があります。
ディレクトリの説明 | 取得方法 | |
---|---|---|
プロジェクトが配置されているディレクトリはデフォルトで自動的に取得され、エントリ ファイルが | App クラスをインスタンス化するときに渡すことができます。 | App::getRootPath()
|
app ディレクトリ | App::getBasePath()
| |
現在のアプリケーションが存在するディレクトリ (存在する場合)シングルアプリケーションモード 基本ディレクトリと同じ マルチアプリケーションモードの場合は | app/application subdirectory | App::getAppPath() |
configルート ディレクトリ下のディレクトリ | App::getConfigPath() | |
フレームワーク実行時のディレクトリ、シングルアプリケーションモードの場合はルートディレクトリの | runtimeディレクトリ、マルチアプリケーションモードの場合は runtime/application subdirectory#. | ##App::getRuntimePath()
|
フレームワークコア クラス ライブラリ | thinkDirectory
| App::getThinkPath()
|