アプリケーション プリンシパルはサービス ロケーターであり、リクエストを処理するためのさまざまな機能を提供するアプリケーション コンポーネントのセットをデプロイします。 たとえば、urlManager コンポーネントは、Web ページ要求を?qū)潖辘工毳偿螗去愆`ラーにルーティングする役割を果たします。 db コンポーネントは、データベース関連のサービスなどを提供します。
同じアプリケーション內(nèi)で、各アプリケーション コンポーネントには、他のアプリケーション コンポーネントを區(qū)別するための一意の ID があり、次の式を使用してアプリケーション コンポーネントにアクセスできます。
\Yii::$app->componentID
たとえば、Yii::$app->db を使用してアプリケーションに登録されている [[yiidbConnection|DB 接続]] を取得し、Yii::$app->cache を使用して登録されたアプリケーションを取得できます。 [[yiicachingCache|一次キャッシュ]]。
上記の式を初めて使用すると、アプリケーション コンポーネントのインスタンスが作成され、それ以降のアクセスではこのインスタンスが返されるため、再度作成する必要はありません。
アプリケーションコンポーネントは任意のオブジェクトにすることができ、アプリケーション本體の設(shè)定で [[yiibaseApplication::components]] 屬性を使用して設(shè)定できます。 例:
[ 'components' => [ // 使用類名注冊 "cache" 組件 'cache' => 'yii\caching\ApcCache', // 使用配置數(shù)組注冊 "db" 組件 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=demo', 'username' => 'root', 'password' => '', ], // 使用函數(shù)注冊"search" 組件 'search' => function () { return new app\components\SolrService; }, ], ]
補足: アプリケーションコンポーネントは次のようになります。グローバル変數(shù)を使用しすぎると、テストとメンテナンスがより困難になる可能性があります。 通常、必要に応じてローカル コンポーネントを作成できます。
ブートスタートアップコンポーネント
前述したように、アプリケーションコンポーネントは最初のアクセス時にのみインスタンス化されます。リクエストの処理中にアクセスがなかった場合、インスタンス化されません。 アクセスされない場合でも、リクエスト処理のたびにコンポーネントをインスタンス化したい場合があります。コンポーネント ID をアプリケーション本體の [[yiibaseApplication::bootstrap|bootstrap]] 屬性に追加できます。
たとえば、次のアプリケーション本體の構(gòu)成では、ログ コンポーネントが常に読み込まれることが保証されます。
[ 'bootstrap' => [ // 將 log 組件 ID 加入引導(dǎo)讓它始終載入 'log', ], 'components' => [ 'log' => [ // "log" 組件的配置 ], ], ]
コア アプリケーション コンポーネント
Yii は、ユーザー リクエストを収集しルートを解析する [[yiiwebApplication::request|request]] コンポーネントなど、固定 ID とデフォルト設(shè)定を持つ一連のコア コンポーネントを定義します。 db]] は、データベース操作を?qū)g行できるデータベース接続を表します。 これらのコンポーネントを通じて、Yii アプリケーション本體はユーザーのリクエストを処理できます。
以下は、事前定義されたコア アプリケーション コンポーネントのリストであり、通常のアプリケーション コンポーネントと同様に構(gòu)成およびカスタマイズできます。 コアコンポーネントを設(shè)定し、そのクラス名を指定しない場合、デフォルトで Yii によって指定されたクラスが使用されます。
[[yiiwebAssetManager|assetManager]]: リソース パッケージとリソースの公開を管理します。詳細(xì)については、「リソースの管理」セクションを參照してください。
このコンポーネントを設(shè)定するときは、コンポーネントのクラス名と、[[yiidbConnection::dsn]] などの他の関連コンポーネント屬性を指定する必要があることに注意してください。 詳細(xì)については、「データ アクセス オブジェクト」セクションを參照してください。
[[yiibaseApplication::errorHandler|errorHandler]]: PHP エラーと例外を処理します。詳細(xì)については、「エラー処理」セクションを參照してください。
日付には長い形式を使用します。詳細(xì)については、「出力データのフォーマット」セクションを參照してください。
[[yiii18nI18N|i18n]]: 情報の翻訳と書式設(shè)定をサポートします。詳細(xì)については、「國際化」セクションを參照してください。
[[yiilogDispatcher|log]]: ログオブジェクトを管理します。詳細(xì)については、「ログ」セクションを參照してください。
[[yiiswiftmailerMailer|mail]]: 電子メール構(gòu)造の生成と送信をサポートします。詳細(xì)については、「メール」セクションを參照してください。
詳細(xì)については、「返信」セクションを參照してください。
詳しくはリクエスト欄をご覧ください。
[[yiiwebSession|session]]: [[yiiwebApplication|Web アプリケーション]] Web アプリケーションでのみ利用可能なセッション情報を表します。 詳細(xì)については、「セッションと Cookie」セクションを參照してください。
詳細(xì)については、URL の解析と生成のセクションを參照してください。
[[yiiwebUser|user]]: 認(rèn)証ログイン ユーザー情報を表します。[[yiiwebApplication|Web アプリケーション]] Web アプリケーションでのみ使用できます。詳細(xì)については、認(rèn)証セクションを參照してください。
[[yiiwebView|view]]: レンダリング ビューをサポートします。詳細(xì)については、「ビュー」セクションを參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中國語版
中國語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









