Yii2チャンネルマウスファイルの詳細な学習
Yii2 の徹底学習 - エントリーファイル
少し前に、簡単な PHP フレームワークを書こうとしたのですが、まだ足りないことが多くて一旦中断しました。最初に Yii2 のソース コードを読み、次に laravel のソース コードを読み、最後にこの単純な PHP フレームワークを書き続ける予定です。
これから Yii2 の研究は、例として基本的なプロジェクトに基づいて行われます。
まずYii2のエントリーファイルを見てみましょう。 Yii2 の nginx 設定を行う際に、
<span style="color: #000000;"> # server_name mysite.local; root </span>/path/to/basic/<span style="color: #000000;">web; ...... location </span>/<span style="color: #000000;"> { # Redirect everything that isn</span><span style="color: #800000;">'</span><span style="color: #800000;">t a real file to index.php</span> try_files $uri $uri/ /index.php?<span style="color: #000000;">$args; }</span>
のような文がいくつかあります。Web のエントリ ファイルが、index.php ファイルであることがわかります。ウェブフォルダー。
index.php ファイルの内容は次のとおりです。
<?<span style="color: #000000;">php</span><span style="color: #008000;">//</span><span style="color: #008000;"> comment out the following two lines when deployed to production// 定义 debug 的标记</span><span style="color: #008080;">defined</span>('YII_DEBUG') or <span style="color: #008080;">define</span>('YII_DEBUG', <span style="color: #0000ff;">true</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;"> 定义环境,有 'dev' 和 'prod' 两种</span><span style="color: #008080;">defined</span>('YII_ENV') or <span style="color: #008080;">define</span>('YII_ENV', 'dev'<span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;"> 引入 vendor 中的 autoload.php 文件,会基于 composer 的机制自动加载类</span><span style="color: #0000ff;">require</span>(__DIR__ . '/../vendor/autoload.php'<span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;"> 引入 Yii 框架的文件 Yii.php</span><span style="color: #0000ff;">require</span>(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'<span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;"> 引入 web 的 config 文件,并将返回值即配置项放入 $config 变量中</span><span style="color: #800080;">$config</span> = <span style="color: #0000ff;">require</span>(__DIR__ . '/../config/web.php'<span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;"> new 一个 yii\web\Application 的实例,并执行它的 run 方法// 用 $config 作为 yii\web\Application 初始化的参数</span>(<span style="color: #0000ff;">new</span> yii\web\Application(<span style="color: #800080;">$config</span>))->run();
コア コード、最後の文、処理のみを確認できます。すべてのリクエストはすべて run メソッドを通じて呼び出され、実行されます。具体的な内部コンテンツについては後で説明します。
Yii2 には実際にはもう 1 つの入り口があります。それは Yii2 コマンドラインのエントリーファイル、つまり最上位ディレクトリにある yii ファイルです。
yii ファイルの内容は次のとおりです。
<span style="color: #008000;">#</span><span style="color: #008000;">!/usr/bin/env php</span><?<span style="color: #000000;">php</span><span style="color: #008080;">defined</span>('YII_DEBUG') or <span style="color: #008080;">define</span>('YII_DEBUG', <span style="color: #0000ff;">true</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;"> fcgi doesn't have STDIN and STDOUT defined by default// 定义 STDIN 和 STDOUT</span><span style="color: #008080;">defined</span>('STDIN') or <span style="color: #008080;">define</span>('STDIN', <span style="color: #008080;">fopen</span>('php://stdin', 'r'<span style="color: #000000;">));</span><span style="color: #008080;">defined</span>('STDOUT') or <span style="color: #008080;">define</span>('STDOUT', <span style="color: #008080;">fopen</span>('php://stdout', 'w'<span style="color: #000000;">));</span><span style="color: #0000ff;">require</span>(__DIR__ . '/vendor/autoload.php'<span style="color: #000000;">);</span><span style="color: #0000ff;">require</span>(__DIR__ . '/vendor/yiisoft/yii2/Yii.php'<span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;"> 引入 console 的 config 文件,并将返回值即配置项放入 $config 变量中</span><span style="color: #800080;">$config</span> = <span style="color: #0000ff;">require</span>(__DIR__ . '/config/console.php'<span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;"> new 一个 yii\console\Application 的实例,并执行它的 run 方法// 用 $config 作为 yii\console\Application 初始化的参数</span><span style="color: #800080;">$application</span> = <span style="color: #0000ff;">new</span> yii\console\Application(<span style="color: #800080;">$config</span><span style="color: #000000;">);</span><span style="color: #800080;">$exitCode</span> = <span style="color: #800080;">$application</span>-><span style="color: #000000;">run();</span><span style="color: #008000;">//</span><span style="color: #008000;"> 退出</span><span style="color: #0000ff;">exit</span>(<span style="color: #800080;">$exitCode</span>);
index.php ファイルとの最大の違いは、yiiconsoleApplication クラスを使用するのに対し、index.php ファイルは yiiconsoleApplication クラスを使用することです。 .php は yiiwebApplication を使用します。
Yii2 への入り口は 2 つあり、高度なプロジェクトであればさらに多くの入り口がありますが、基本的な内容はこの 2 つの形式のいずれかになります。
今日は簡単なオープニングなのでこの辺で。
Yii2 ソース コードに興味がある学生は、Yii2-2.0.3-annotated のプロジェクトに注目してください。Yii2 ソース コードに関する多くのコメントが追加されています。 、今後も追加され続ける予定です~
興味のある学生も参加して、Yii2 ソース コードにコメントを送信できます。
- 1FManghai
- quot; Yii2 のソースコードを書いて読む準備をします。 go laravel のソースコードを読んだ後、最終的にこの単純な PHP フレームワークを書き続けました。これは私の現在の計画と一致しました。私が登録したブログパークのアカウントはこれを記録するために使用します。
- Re: Crazy Primitive Man
- @万海、それでは一緒に働きましょう。ご質問があれば、一緒に話し合ってください~ ~

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
