ホームページ php教程 PHP开发 Yii2.0 アプリケーションコンポーネント

Yii2.0 アプリケーションコンポーネント

Nov 25, 2016 pm 02:18 PM

アプリケーション プリンシパルはサービス ロケーターであり、リクエストを処理するためのさまざまな機能を提供するアプリケーション コンポーネントのセットをデプロイします。 たとえば、urlManager コンポーネントは、Web ページ要求を対応するコントローラーにルーティングする役割を果たします。 db コンポーネントは、データベース関連のサービスなどを提供します。

同じアプリケーション内で、各アプリケーション コンポーネントには、他のアプリケーション コンポーネントを区別するための一意の ID があり、次の式を使用してアプリケーション コンポーネントにアクセスできます。

\Yii::$app->componentID
ログイン後にコピー

たとえば、Yii::$app->db を使用してアプリケーションに登録されている [[yiidbConnection|DB 接続]] を取得し、Yii::$app->cache を使用して登録されたアプリケーションを取得できます。 [[yiicachingCache|一次キャッシュ]]。

上記の式を初めて使用すると、アプリケーション コンポーネントのインスタンスが作成され、それ以降のアクセスではこのインスタンスが返されるため、再度作成する必要はありません。

アプリケーションコンポーネントは任意のオブジェクトにすることができ、アプリケーション本体の設定で [[yiibaseApplication::components]] 属性を使用して設定できます。 例:

[
    'components' => [
        // 使用类名注册 "cache" 组件
        'cache' => 'yii\caching\ApcCache',
        // 使用配置数组注册 "db" 组件
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=demo',
            'username' => 'root',
            'password' => '',
        ],
        // 使用函数注册"search" 组件
        'search' => function () {
            return new app\components\SolrService;
        },
    ],
]
ログイン後にコピー

補足: アプリケーションコンポーネントは次のようになります。グローバル変数を使用しすぎると、テストとメンテナンスがより困難になる可能性があります。 通常、必要に応じてローカル コンポーネントを作成できます。

ブートスタートアップコンポーネント

前述したように、アプリケーションコンポーネントは最初のアクセス時にのみインスタンス化されます。リクエストの処理中にアクセスがなかった場合、インスタンス化されません。 アクセスされない場合でも、リクエスト処理のたびにコンポーネントをインスタンス化したい場合があります。コンポーネント ID をアプリケーション本体の [[yiibaseApplication::bootstrap|bootstrap]] 属性に追加できます。

たとえば、次のアプリケーション本体の構成では、ログ コンポーネントが常に読み込まれることが保証されます。

[
     'bootstrap' => [
         // 将 log 组件 ID 加入引导让它始终载入
         'log',
     ],
     'components' => [
         'log' => [
             // "log" 组件的配置
         ],
     ],
]
ログイン後にコピー

コア アプリケーション コンポーネント

Yii は、ユーザー リクエストを収集しルートを解析する [[yiiwebApplication::request|request]] コンポーネントなど、固定 ID とデフォルト設定を持つ一連のコア コンポーネントを定義します。 db]] は、データベース操作を実行できるデータベース接続を表します。 これらのコンポーネントを通じて、Yii アプリケーション本体はユーザーのリクエストを処理できます。

以下は、事前定義されたコア アプリケーション コンポーネントのリストであり、通常のアプリケーション コンポーネントと同様に構成およびカスタマイズできます。 コアコンポーネントを設定し、そのクラス名を指定しない場合、デフォルトで Yii によって指定されたクラスが使用されます。

[[yiiwebAssetManager|assetManager]]: リソース パッケージとリソースの公開を管理します。詳細については、「リソースの管理」セクションを参照してください。

このコンポーネントを設定するときは、コンポーネントのクラス名と、[[yiidbConnection::dsn]] などの他の関連コンポーネント属性を指定する必要があることに注意してください。 詳細については、「データ アクセス オブジェクト」セクションを参照してください。

[[yiibaseApplication::errorHandler|errorHandler]]: PHP エラーと例外を処理します。詳細については、「エラー処理」セクションを参照してください。

日付には長い形式を使用します。詳細については、「出力データのフォーマット」セクションを参照してください。

[[yiii18nI18N|i18n]]: 情報の翻訳と書式設定をサポートします。詳細については、「国際化」セクションを参照してください。

[[yiilogDispatcher|log]]: ログオブジェクトを管理します。詳細については、「ログ」セクションを参照してください。

[[yiiswiftmailerMailer|mail]]: 電子メール構造の生成と送信をサポートします。詳細については、「メール」セクションを参照してください。

詳細については、「返信」セクションを参照してください。

詳しくはリクエスト欄をご覧ください。

[[yiiwebSession|session]]: [[yiiwebApplication|Web アプリケーション]] Web アプリケーションでのみ利用可能なセッション情報を表します。 詳細については、「セッションと Cookie」セクションを参照してください。

詳細については、URL の解析と生成のセクションを参照してください。

[[yiiwebUser|user]]: 認証ログイン ユーザー情報を表します。[[yiiwebApplication|Web アプリケーション]] Web アプリケーションでのみ使用できます。詳細については、認証セクションを参照してください。

[[yiiwebView|view]]: レンダリング ビューをサポートします。詳細については、「ビュー」セクションを参照してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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