技術情報

PHPフレームワーク「Yii」とは

PHPWebアプリケーションフレームワーク「Yii」について紹介します。

概要

「Yii」とは

「Yii(イー)」は、高性能/軽量/高速のPHPフレームワークです。MVCモデル、オブジェクト指向、コンポーネントベース、高度なキャッシュ機構、高い開発生産性が特徴です。大規模/高負荷なアプリケーション開発に適しています。

基本説明

「Yii」は、「イー[ji:] 」と発音します。「Yes It Is!」の省略形、「簡単(Easy)」「効率的(Efficient)」「高拡張性(Extensible)」、中国語の「シンプル」「発展」という単語に由来、などとされています。

「Yii」には「PHPだからこそこうあるべき」という思想があります。最初は、若干とっつきにくい印象を受けるかもしれませんが、PHPの仕組みを考えぬいており、洗練されています。

PHP5専用で、PHPランタイムで動きます。

経緯

2008年1月、「Yii」プロジェクトの開発が開始されました。「PRADO」の開発者であったQiang(Charlie) Xue氏が、「PRADO」の欠点を改善し、簡単/高拡張性/高速なPHP5フレームワークの開発を目的としています。

2008年12月、「Yii1.0」が正式に公表されました。

海外では、「Symfony」「CakePHP」と並ぶポピュラーなフレームワークです。特に、旧共産圏(ロシア、ウクライナ、中国など)で多く利用されています。日本の利用実績は他国に比べ多くありません。

 

主な機能

WSDLサービス

複雑なWSDLサービス仕様生成、Webサービスリクエスト処理の管理を行います。

国際化/ローカライズ対応

i18N8N/L10Nをサポートしています。

例外処理/メッセージロギング機能

エラー発生時は、例外処理が実行されます。該当ビューファイルでエラーメッセージを表示し、エラーログを送り先(ファイル/メールなど)に送信します。

セキュリティ対策

クロスサイトスクリプティング予防、Cookie改ざん防止などの仕組みがあります。

テスト機能

「PHPUnit」「Selenium」を使用して、単体テスト/機能テストを行えます。

自動コード生成

スケルトンアプリケーション/CRUDアプリケーションなどの自動コード生成機能があります。

XHTML規格準拠

Yiiコンポーネント/生成されたコードは、「XHTML規格」に準拠しています。

サードパーティ製コード対応

「PEAR」「Zend Framework」のコードを使用することも可能です。

 

主な特徴

MVCフレームワーク

オーソドックスなフルスタックMVCフレームワークです。さまざまなフレームワーク/CMSに影響を受けていて、基本的なコードは「Ruby on Rails」によく似ています。

オブジェクト指向

純粋なオブジェクト指向フレームワークです。

規約ベース

「規約ベース」の設計思想になっています。

REST対応

PUT/PATCH/HEAD/OPTIONSなどのメソッドもサポートしています。

RAD(Rapid Application Development)

開発効率を上げるための仕組みが備わっています。

  • コード作成ツールがブラウザ内で動く
  • デバッグツールが初期インストールされている
  • IDEフレンドリー(PhpStormなど)
  • 「JQuery」統合

カスタマイズ性

フレームワーク固有な記述方法に強制されないため、独自のカスタマイズも容易に行えます。

DBサポート

「RDB」と「NoSQL」の両方を標準でサポートしています。

  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • SQLite
  • MongoDB

キャッシュサポート

「Yii」は、軽量で、高度なキャッシュ機構を持っています。異なるメディアにキャッシュデータを保存し、異なるレベルで使用することができます。

データキャッシュ、ページキャッシュ、フラグメントキャッシュ、ダイナミックコンテンツキャッシュをサポートしています。

このキャッシュ機構により、高負荷アプリケーションにも対応できます。

  • MemCache
  • WinCache
  • XCache
  • ZendDataCache
  • Redis
  • APC(Alternative PHP Cache)

拡張機能(エクステンション)

「Yii」の拡張機能は「エクステンション 」と呼ばれます。「Yii」プロジェクトには、多種多様な拡張リポジトリが蓄積されています。

 

まとめ

「Yii」は、「Ruby on Rails」に似た高い生産性を有しています。また、高度なキャッシュ機構を備えているため、高負荷アプリケーション開発の選択肢として有望なフレームワークとなっています。

 

Yiiを使ったオフショア開発は、こちらへ

About the author: matsumoto