とは何ですか
Yii は、さまざまな種類の Web アプリケーションの開発に使用される PHP フレームワークです。 Yii は、これを高性能のコンポーネントベースのフレームワークとして公式に定義しています。
個人的な経験から言えば、Yii には次のような特徴があります:
Yii はもっと「トレンディー」です。
Yii 開発チームは常に業(yè)界の Web 開発の最新テクノロジーに注目しており、現(xiàn)在最も人気のあるテクノロジーを吸収することに細心の注意を払っています。近年の Web 開発における最もトレンドな技術(shù)は多かれ少なかれ Yii に見られると言えます。たとえば、Yii は最初に開始されたとき、明らかな Ruby on Rails スタイルを持っていました; たとえば、Yii2 に実裝されたばかりの名前空間やその他の PHP 最新機能がサポートされていました。トレンドやトレンドを追い続けたフレームワークだけが魅力的で活力があり、興味深く學(xué)ぶ意味のあるものになります。
Yii は比較的「簡単」です。
その名のとおり、Yii は學(xué)習(xí)と使用が比較的簡単なフレームワークです。コードの品質(zhì)は非常に高く、學(xué)ぶべきことがたくさんあります。明確なコメントと豊富なドキュメントにより、コードが読みやすくなります。コミュニティが活発で、公式フォーラムには中國語セクションがあり、國內(nèi)フォーラムも非常に人気があり、知識を得るのは簡単です。アーキテクチャは比較的安定しており、Yii1.1 から Yii2 への変更點から判斷すると、オリジナルの規(guī)約や蓄積された経験の多くは依然として適用可能です。
Yii はより「完全」です。
Web 開発に関する限り、アプリケーションの種類や開発のどの段階で共通の問題が発生しても、Yii には成熟した効率的で信頼性の高いソリューションが用意されています。一般的な Web 開発の場合は、これで十分です。たとえば、Yii は、疑似靜的、國際化、RESTful などのプログラミング フレームワークを提供します。ただし、規(guī)模という點では、Yii はまだ大きなフレームワークではありません。私の個人的な評価は、中規(guī)模で軽量なフレームワークであり、ほとんどのアプリケーション開発には間違いなく十分です。
Yii は比較的「速い」です。
Yii は、重要な機能として業(yè)務(wù)効率化を公式に推進しています。実際の使用狀況から判斷すると、數(shù)ある PHP フレームワークの中でも効率の點で一定の利點があります。しかし、個人的には、これは最も重要な機能ではないと思います。フレームワークのユーザー、つまり開発者にとっては、開発効率の方が重要です。 Yii の合理的なアーキテクチャにより、Web 開発で一般的に使用されるアイデアやパターンを簡単に適用できます。 Web 開発でよく遭遇するいくつかの詳細な問題に対して、Yii はすぐに使用できる、非常に効率的で便利な既成のソリューションを多數(shù)提供しています。開発者や開発チームにとって、高い開発効率はさらに重要です。
卓越性を目指して努力し、大多數(shù)の Web 開発者のためにこのような優(yōu)れたフレームワークを作成するというたゆまぬ努力をしてくれた Yii 開発チームに感謝したいと思います。私は Yii1.1 から Yii に觸れて使用しており、仕事や趣味の関係でいくつかのフレームワークにも觸れてきました。一般的に言えば、これまでのところ Yii にはとても満足しています。Yii で最も気に入っている點は 2 つあります。1 つは、Yii を?qū)W習(xí)した後、現(xiàn)時點で最も人気があり成熟した機能の多くを?qū)W習(xí)したことです。迅速に開発し、迅速に改善できることです。
Yii2.0
のハイライト
Yi には、Yii1.1 と Yii2.0 の 2 つの主要なバージョンがあります。 Yii1.1 は古いバージョンであり、本書執(zhí)筆時點の最新バージョン番號は 1.1.15 です。 Yii1.1 は新たな開発は行われておらず、公式はメンテナンスとセキュリティ上の脆弱性の更新のみを行っており、新しい機能は導(dǎo)入されません。 Yii2.0 は、Yii1.1 をベースに完全に覆され、書き直されたフレームワークで、多くの最新技術(shù)と主流の開発慣習(xí)を吸収しており、最新世代の Web 開発フレームワークを代表するものです。付録 1: Yii2.0 と Yii1.1 の間の主な改善點 このセクションでは、Yii2.0 と Yii1.1 の間の主な改善點を紹介します。以下では、Yii2.0 のより顕著な機能のいくつかを簡単に紹介します:
PHP 名前空間、Trait、PSR 標(biāo)準(zhǔn)、Composer、Bower パッケージ マネージャーなどの新しいテクノロジと標(biāo)準(zhǔn)を使用します。
新しいアーキテクチャと、依存関係注入、依存関係注入コンテナー、サービス ロケーター (Service Locator) などの新しいパターンを?qū)g裝しました。
Yii2.0 はセキュリティを非常に重視しており、SQL インジェクション、XSS 攻撃、CSRF 攻撃、Cookie 改ざんなどを効果的に防止するための一連の対策を採用しています。
さまざまな SQL および NOSQL データベースを幅広くサポートし、Active Record などのデータベース クエリおよび操作インターフェイスを効率的に実裝し、データベースの移行、レプリケーション、読み取り/書き込み分離などの機能を提供します。
完全に標(biāo)準(zhǔn)に準(zhǔn)拠した RESTful API は、最小限のコードで実裝できます。
さまざまな粒度とメディアのキャッシュ メカニズムをサポートします。
Cookie およびトークンベースの認(rèn)証、RBAC およびその他の権限制御方法に基づくさまざまな認(rèn)証および認(rèn)可方法を提供し、OpenID、OAuth1、OAuth2 などをサポートします。
Bootstrap、jQuery UI をサポートし、使用できる豊富なウィジェットを提供します。
完全な國際サポート。ICU 標(biāo)準(zhǔn)に準(zhǔn)拠した時刻、複數(shù)形などの書式設(shè)定ツール、およびメッセージ翻訳やビュー翻訳などの機能を提供します。
2 つの主流の PHP テンプレート エンジン、Twig と Smarty をサポートすることに加えて、開発者は他のエンジンをサポートする獨自の拡張機能を作成することもできます。
勤勉なプログラマー向けに、Yii デバッグ ツールバー、Gii コード ジェネレーター、ドキュメント ジェネレーターなどの効率的な開発ツールを提供します。
Codeception および Faker と統(tǒng)合され、DB Migration と組み合わせて、テスト開発を容易にするフィクスチャ フレームワークを提供します。
シンプルなアプリケーション テンプレートと高度なアプリケーション テンプレートが提供されており、さまざまな開発シナリオに適しており、開発者が獨自のアプリケーションをできるだけ早く構(gòu)築するのに役立ちます。
Yii2.0 の機能の詳細については、公式の説明を參照してください。
背景知識
本書は Yii2 に焦點を當(dāng)てていますが、読者に Yii1.1 の開発経験は必要ないことに注意してください。このような背景知識があると Yii2 をより早くマスターするのに役立ちますが、説明の過程で、Yii1.1 に関する関連知識のない読者が関連概念を補足するのにこの本が役立ちます。これらの概念を理解していれば、読者は Yii1.1 を一から學(xué)ぶ必要はなく、直接 Yii2 を使い始めることができます。
もちろん、Yii は PHP フレームワークですので、PHP を理解しておくのがベストですが、コードに習(xí)熟する必要はなく、コードを理解し、簡単なコードが書け、どの関數(shù)を使うべきか大まかに知っていれば十分です?;镜膜摔膝抓恁哎楗撺螗皶rに使用するだけで十分ですが、使いながら學(xué)習(xí)することも學(xué)習(xí)方法です。
同時に、Yii はオブジェクト指向フレームワークでもあります。これは、Yii がコード構(gòu)成と問題解決の観點からオブジェクト指向の考え方を體現(xiàn)していることを意味します。 Yii で開発するには、この考え方に従うのが最善です。したがって、読者はオブジェクト指向プログラミングについてある程度の理解を持っていることが推奨されます。実際、プログラマーのレベルを判斷するのは、特定の言語や特定の開発フレームワークの習(xí)熟度だけではありません。さらに重要なのは、問題を解決するためのアイデアと方法に依存します。メソッドの主要なカテゴリの 1 つはオブジェクト指向メソッドです。この観點から見ると、Yii の學(xué)習(xí)と使用には高度なオブジェクト指向手法は必要ありません。しかし、経験者として、読者の皆様にはオブジェクト指向の開発手法を體系的かつ包括的に學(xué)んでいただきたいと今でも願っています。特に本書では、Web開発に攜わる際によく使われるデザインパターンについても具體的に解説します。
この本の読み方
これは「クイックスタート」や「1 週間でマスター」の本ではありません。この本の非常に重要な目的と出発點は、Yii2.0 の原則を分析して、読者が Yii2.0 が何であるか、そしてなぜそうなるのかを理解できるようにすることです。それは一夜にして起こるかもしれません。この本には多くのコードが含まれており、データ構(gòu)造の分析、コール スタックの追跡、コード フローの追跡が必要です。私たちは鮮やかで簡潔であるよう努めていますが、読者は依然として「古代の仏陀の緑燈籠」に備えて心の準(zhǔn)備をし、衝動的になったりせっかちになったりせず、內(nèi)なるスキルの練習(xí)に集中し、しっかりとした基礎(chǔ)を築き、獨自のスキルを練習(xí)する必要があります。できるだけ早く。
內(nèi)容的にはYii2.0の本質(zhì)を直接指摘しており、完璧ではなく洗練を目指しているが、関連するPHPやHTTP、その他多くの知識についてはせいぜい觸れただけで表面的なものであり、內(nèi)容は不十分である。それを紹介するために。そのため、関連する知識や背景知識については、検索エンジンなどを駆使して自習(xí)?補完する必要があります。
章の構(gòu)成に関しては、この本は一般に、內(nèi)容が徐々に深化するパターンで配置されています。同時に、各パートの內(nèi)容は比較的獨立しており、各ページの內(nèi)容は可能な限り獨立した記事にすることができます。したがって、Yii2.0 を初めて使用する読者は、段階的に読むことをお勧めします。一定の基礎(chǔ)を持った読者は、自分の興味や趣味に基づいて學(xué)習(xí)の入り口を自由に選ぶことができ、気になる知識のポイントに出會ったときに、該當(dāng)するページを検索することで該當(dāng)するページを見つけることができます。
Yii の基礎(chǔ)セクションでは、Yii のフレームワーク全體を理解するための最も基本的な概念であるプロパティ、イベント、ビヘイビアなどの Yii の最も基本的な知識を順番に紹介します。
Yii 規(guī)約セクションでは、Yii 規(guī)約のいくつかのルーチンと設(shè)定を主に説明し、開発者が何も指定しない場合の Yii のデフォルト動作の問題を解決し、Yii の実際の使用方法についての理解を深めます。この部分には主に、Yii アプリケーションのディレクトリ構(gòu)造とエントリスクリプト、エイリアス (Alias)、Yii の自動クラスロード機構(gòu)、環(huán)境および設(shè)定ファイル、設(shè)定項目 (Configuration) などが含まれます。
「Yii パターン」セクションでは、現(xiàn)在の Web 開発において最も主流で成熟したデザインパターンの一部を Yii がどのように実裝しているかを分析します。これらのデザインパターンを?qū)Wぶことは、Yii の仕組みを深く理解するのに役立ち、さらに稀なこととして、読者の開発およびデザインレベルの向上につながります。このパートでは主に、MVC、依存関係注入と依存関係注入コンテナー、サービス ロケーター (Service Locator) の 3 つの設(shè)計パターンについて説明します。