ホームページ バックエンド開発 PHPチュートリアル PHP 開発フレームワーク Yii Framework チュートリアル (2) Yii Web アプリケーションの基礎

PHP 開発フレームワーク Yii Framework チュートリアル (2) Yii Web アプリケーションの基礎

Jan 21, 2017 am 09:29 AM

前の「Hello, World」では、Yii アプリケーション開発は簡単に思えますが、すぐに結論を急がないでください:-)、何年も前、最初の Hello, World を書いた後、初めて MFC 開発を使い始めたときのことを思い出します。 , 私はまだ MFC アプリケーションの作成を開始する方法がわかりません。これは、MFC アプリケーション フレームワークと、MFC が提供する主要なクラス ライブラリが分からないためです。基本的に、アプリケーションを作成して Yii フレームワークを学ぶことはできません。また、最初に、Yii アプリケーションを構成する主要なコンポーネントといくつかの一般的に使用されるクラスを理解する必要があります。

前回のチュートリアルでは、Yii が MVC (Model-View-Controller) を使用していることを述べ、エントリ スクリプトとメイン アプリケーション クラスの CWebApplication クラスを紹介しました。アプリケーションクラスのインスタンスは、エントリスクリプトによってオブジェクト(シングルトン)として作成されます。このアプリケーション シングルトン オブジェクトは、Yii::app() を介してどこからでもアクセスできます。

メイン アプリケーション インスタンス (CWebApplication)

デフォルトでは、アプリケーションは CWebApplication のインスタンスです。これをカスタマイズするには、通常、アプリケーション インスタンスの作成時にそのプロパティ値を初期化するための構成ファイル (または配列) を提供する必要があります。アプリケーションをカスタマイズするもう 1 つの方法は、CWebApplication を拡張することです。

設定はキーと値のペアの配列です。各キーはアプリケーション インスタンス内のプロパティの名前を表し、各値は対応するプロパティの初期値です。 たとえば、次の構成では、アプリケーションの名前とdefaultControllerプロパティを設定します。

array(
'name'=>'Yii Framework',
'defaultController'=>'site',
)
ログイン後にコピー

通常、これらの設定は別の PHP スクリプト (例: protected/config/main.php) に保存されます。スクリプトでは、この設定配列を次のように返します:

return array(...); この設定を適用するには、以下のように設定ファイルの名前をパラメータとしてアプリケーションのコンストラクターまたは Yii に渡します。 () 。これは通常、エントリ スクリプトで行われます:

$app=Yii::createWebApplication($configFile); アプリケーション コンポーネント

アプリケーションの機能は、柔軟なコンポーネント構造を通じて簡単にカスタマイズまたは拡張できます。アプリケーションは一連のアプリケーション コンポーネントを管理し、各コンポーネントは特定の機能を実装します。 たとえば、アプリケーションは CUrlManager と CHttpRequest を使用してユーザーからのリクエストを解析します。

アプリケーションのコンポーネント属性を設定することで、アプリケーションで使用されるコンポーネントクラスとその属性値をカスタマイズできます。たとえば、キャッシュに複数の memcache サーバーを使用できるようにアプリケーションの CMemCache コンポーネントを構成できます:

array(
......
'components'=>array(
......
'cache'=>array(
'class'=>'CMemCache',
'servers'=>array(
array('host'=>'server1', 'port'=>11211, 'weight'=>60),
array('host'=>'server2', 'port'=>11211, 'weight'=>40),
),
),
),
ログイン後にコピー

) 上に示したように、コンポーネント配列にキャッシュ要素を追加しました。キャッシュ要素は、このコンポーネントのクラスが CMemCache であることを示し、それに応じてサーバー属性を初期化する必要があります。

アプリケーションコンポーネントにアクセスするには、 Yii::app()->ComponentID を使用します。ここで、 ComponentID はコンポーネント ID を指します (例: Yii::app()->cache)。

アプリコンポーネントは、設定でenabledをfalseに設定することで無効にできます。無効なコンポーネントにアクセスすると、Null が返されます。

CWebApplication のライフ サイクル

ユーザーのリクエストを処理するとき、アプリケーションは次の宣言サイクルを実行します。

CApplication::preinit() を通じてアプリケーションを事前初期化する

クラスのオートローダーとエラー処理を設定する;

コア クラス コンポーネントを登録します。

CApplication::init() を介してアプリケーションを初期化します。

静的アプリケーション コンポーネントをロードします。

ユーザーを処理します。リクエスト:

ユーザーリクエストを解析します。

コントローラーを実行します。

onEndRequest イベントをトリガーします。

CController コントロール クラス

コントローラーは、CController またはそのサブクラスのインスタンスです。ユーザーの要求に応じてアプリケーションによって作成されます。 コントローラーが実行されると、要求されたアクションが実行され、通常は必要なモデルが導入され、対応するビューがレンダリングされます。 アクションの最も単純な形式は、名前が action で始まるコントローラー クラスのメソッドです。

コントローラーには通常、デフォルトのアクションがあります。ユーザーのリクエストで実行するアクションが指定されていない場合は、デフォルトのアクションが実行されます。 デフォルトでは、デフォルトのアクション名はindexです。 CController::defaultAction を設定することで変更できます。

以下は、コントローラー クラスに必要な最も単純なコードです。このコントローラーにはアクションが定義されていないため、コントローラーへのリクエストは例外をスローします。

class SiteController extends CController
{
}
ログイン後にコピー

ルーティング

ユーザーが Web ページにアクセスするための URL の基本形式は /index.php?r=XController/YAction で、これは、Controllers サブディレクトリの XController.php で定義されているクラス XController の YAction メソッドに対応します。保護されたディレクトリ。 たとえば、ルート post/edit は PostController とその編集アクションを表します。デフォルトでは、URL http://hostname/index.php?r=post/edit はこのコントローラとアクションをリクエストします。 モデル (CModel クラス) モデルは、CModel またはそのサブクラスの 1 つのインスタンスです。モデルはデータとそれに関連するビジネス ロジックを保持するために使用されます。

Yii はフォーム モデルとアクティブ レコードの 2 種類のモデルを実装します。どちらも同じ基本クラス CModel を継承しています。

フォーム モデルは CFormModel のインスタンスです。フォーム モデルは、ユーザーの入力から取得したデータを保持するために使用されます。 このデータは多くの場合、取得、使用され、その後破棄されます。たとえば、ログイン ページでは、フォーム モデルを使用して、エンド ユーザーが提供したユーザー名とパスワードの情報を表すことができます。詳しくはご利用フォームをご覧ください。

アクティブ レコード (AR) は、オブジェクト指向スタイルでデータベース アクセスを抽象化するための設計パターンです。 各 AR オブジェクトは、CActiveRecord のインスタンスまたはそのサブクラスの 1 つです。データテーブル内の行を表します。 行のフィールドは、AR オブジェクトのプロパティに対応します。

View View

View は、主要なユーザー インタラクション要素を含む PHP スクリプトです。 PHP ステートメントを含めることができますが、これらのステートメントによってデータ モデルが変更されないようにすることをお勧めします。また、その単純さを (単にビューとして) 維持するのが最善です。ロジックとインターフェイスを分離するには、ロジックの大部分をビューではなくコントローラーまたはモデルに配置する必要があります。

Windows アプリケーションと比較すると、View は Windows アプリケーションの Form クラスに似ており、コントロールは Yii フレームワークに対応し、主にデータを表すために使用されるコンポーネントである CWidget になります。通常、小さなオブジェクトは、複雑で独立したユーザー インターフェイスを生成するためにビューに埋め込まれます。たとえば、カレンダー ウィジェットを使用して、ユーザー インターフェイスをより再利用しやすくします。

Asp.Net に似たマスターページは、Yii ではレイアウトと呼ばれます。

レイアウトは、ビューを装飾するために使用される特別なビュー ファイルです。通常、ユーザー インターフェイス内のビューの共通部分が含まれます。たとえば、レイアウトにはヘッダー部分とフッター部分を含めることができ、その間にコンテンツを埋め込むことができます。

...ここにヘッダー...

...ここにフッター... $content は、コンテンツ ビューのレンダリング結果を保存します。

render() を使用すると、レイアウトは暗黙的にビュー スクリプト protected/ に適用されます。 views/layouts/main.php はデフォルトのレイアウト ファイルです。これは、CWebApplication::layout または CWebApplication::layout を変更することでカスタマイズできます。レイアウトなしでビューをレンダリングするには、 renderPartial() を呼び出します。

上記では、Yii アプリケーションのいくつかの重要なコンポーネントを紹介しています。「Hello, World」の例を参照してください。また、Yii アプリケーションのファイル構造にもデフォルトの定義があります。以下は、アプリケーションのデフォルトのディレクトリ構造です。

PHP 開発フレームワーク Yii Framework チュートリアル (2) Yii Web アプリケーションの基礎

Yii アプリケーションを正式に開発する前に、まず Yii が提供するクラス ライブラリ http://www.yiiframework.com/doc/api/ を大まかに見てください。次の図は、提供されているクラス ライブラリのパッケージ定義を示しています。 by Yii Framework:

PHP 開発フレームワーク Yii Framework チュートリアル (2) Yii Web アプリケーションの基礎

Yii アプリケーションの主なコンポーネントと各クラスパッケージでサポートされる主な機能を最初に理解することによってのみ、Yii をより柔軟に使用して Web アプリケーションを開発することができます。

上記は、PHP 開発フレームワーク Yii Framework チュートリアル (2) Yii Web アプリケーションの基礎の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

FastAPI フレームワークを使用して国際的な Web アプリケーションを構築する FastAPI フレームワークを使用して国際的な Web アプリケーションを構築する Sep 29, 2023 pm 03:53 PM

FastAPI フレームワークを使用して国際的な Web アプリケーションを構築します。FastAPI は、Python 型の注釈と高性能の非同期サポートを組み合わせた高性能 Python Web フレームワークで、Web アプリケーションの開発をよりシンプル、高速、信頼性の高いものにします。国際的な Web アプリケーションを構築する場合、FastAPI は、アプリケーションで複数の言語を簡単にサポートできるようにする便利なツールと概念を提供します。以下に、FastAPI フレームワークを使用してビルドする方法を紹介する具体的なコード例を示します。

PHP8 は JIT コンパイルを通じて Web アプリケーションのパフォーマンスをどのように向上させますか? PHP8 は JIT コンパイルを通じて Web アプリケーションのパフォーマンスをどのように向上させますか? Oct 18, 2023 am 08:04 AM

PHP8 は JIT コンパイルを通じて Web アプリケーションのパフォーマンスをどのように向上させますか? Web アプリケーションの継続的な開発と需要の増加に伴い、Web アプリケーションのパフォーマンスの向上が開発者の焦点の 1 つになっています。一般的に使用されるサーバーサイド スクリプト言語として、PHP は常に開発者に愛されてきました。 JIT (ジャストインタイム コンパイル) コンパイラーは PHP8 で導入され、開発者に新しいパフォーマンス最適化ソリューションを提供します。この記事では、PHP8 が JIT コンパイルを通じて Web アプリケーションのパフォーマンスを向上させる方法について詳しく説明し、具体的なコード例を示します。

PHP フレームワーク Yii を使用して可用性の高いクラウド バックアップ システムを開発する方法 PHP フレームワーク Yii を使用して可用性の高いクラウド バックアップ システムを開発する方法 Jun 27, 2023 am 09:04 AM

クラウド コンピューティング テクノロジの継続的な発展により、データのバックアップはすべての企業が行う必要のあるものになりました。この文脈では、可用性の高いクラウド バックアップ システムを開発することが特に重要です。 PHP フレームワーク Yii は、開発者が高性能の Web アプリケーションを迅速に構築できる強力なフレームワークです。ここでは、Yii フレームワークを使用して可用性の高いクラウド バックアップ システムを開発する方法を紹介します。データベースモデルの設計 Yii フレームワークでは、データベースモデルは非常に重要な部分です。データ バックアップ システムには多くのテーブルとリレーションシップが必要なため、

Symfony と Yii2: 大規模な Web アプリケーションの開発にはどちらのフレームワークが適していますか? Symfony と Yii2: 大規模な Web アプリケーションの開発にはどちらのフレームワークが適していますか? Jun 19, 2023 am 10:57 AM

Web アプリケーションの需要が高まるにつれ、開発者が開発フレームワークを選択する選択肢はますます増えています。 PHP フレームワークとして人気のある Symfony と Yii2 は、どちらも強力な機能とパフォーマンスを備えていますが、大規模な Web アプリケーションを開発する必要がある場合、どちらのフレームワークがより適しているのでしょうか。次に、より良い選択を行うために、Symphony と Yii2 の比較分析を行います。基本概要 Symphony は、PHP で書かれたオープンソースの Web アプリケーション フレームワークであり、上に構築されています。

Yii フレームワークでのデータクエリ: データに効率的にアクセスする Yii フレームワークでのデータクエリ: データに効率的にアクセスする Jun 21, 2023 am 11:22 AM

Yii フレームワークは、Web アプリケーション開発のプロセスを簡素化するための多数のツールとコンポーネントを提供するオープンソースの PHP Web アプリケーション フレームワークであり、その重要なコンポーネントの 1 つがデータ クエリです。 Yii フレームワークでは、SQL に似た構文を使用してデータベースにアクセスし、データを効率的にクエリおよび操作できます。 Yii フレームワークのクエリビルダーには主に次の種類があります: ActiveRecord クエリ、QueryBuilder クエリ、コマンド クエリ、独自の SQL クエリ

Yii2 と Phalcon: グラフィック レンダリング アプリケーションの開発にはどちらのフレームワークが適していますか? Yii2 と Phalcon: グラフィック レンダリング アプリケーションの開発にはどちらのフレームワークが適していますか? Jun 19, 2023 am 08:09 AM

現在の情報化時代では、ビッグデータ、人工知能、クラウド コンピューティング、その他のテクノロジーが大手企業の焦点となっています。その中でも、高性能なグラフィックス処理技術として、グラフィックスカードレンダリング技術がますます注目を集めています。グラフィックス カード レンダリング テクノロジは、ゲーム開発、映画やテレビの特殊効果、エンジニアリング モデリングなどの分野で広く使用されています。開発者にとって、自分のプロジェクトに合ったフレームワークを選択することは非常に重要な決定です。現在の言語の中でも PHP は非常に動的な言語であり、Yii2、Ph などの優れた PHP フレームワークもいくつかあります。

Beego を使用してマイクロサービス アーキテクチャで Web アプリケーションを開発する Beego を使用してマイクロサービス アーキテクチャで Web アプリケーションを開発する Jun 23, 2023 am 08:39 AM

インターネットの発展とアプリケーションの普及に伴い、Web アプリケーションの需要も成長し続けています。多数のユーザーのニーズを満たすために、従来の Web アプリケーションはパフォーマンスのボトルネックやスケーラビリティの問題に直面することがよくあります。これらの問題に対応して、マイクロサービス アーキテクチャが徐々に Web アプリケーション開発のトレンドおよびソリューションになってきました。マイクロサービス アーキテクチャでは、Beego フレームワークが多くの開発者の最初の選択肢となり、その効率性、柔軟性、使いやすさが開発者に深く愛されています。この記事では、Beego フレームワークを使用してマイクロサービス アーキテクチャで Web アプリケーションを開発する方法を紹介します。

Django を使用して大規模な Web アプリケーションを構築するためのベスト プラクティス Django を使用して大規模な Web アプリケーションを構築するためのベスト プラクティス Jun 22, 2023 pm 09:52 PM

インターネットの普及と発展に伴い、Web アプリケーションは今日の社会に不可欠かつ重要な部分になりました。大規模な Web アプリケーションの場合、効率的でスケーラブルで保守可能なフレームワークが不可欠です。このような状況下で、Django は、開発者が高品質の Web アプリケーションを迅速に構築できるように多くのベスト プラクティスを採用しているため、人気の Web フレームワークになりました。この記事では、Django を使用して大規模な Web アプリケーションを構築するためのベスト プラクティスをいくつか紹介します。

See all articles