Files
yii/docs/guide/ja/extension.integration.txt
2009-04-05 21:36:33 +00:00

46 lines
2.5 KiB
Plaintext

サードパーティライブラリを使う
=========================
Yii は、より一層 Yii の機能性を拡張するために、
容易にサードパーティライブラリを統合できるよう、入念に設計されています。
プロジェクトでサードパーティライブラリを使用する場合、開発者は、
たびたびクラスの名前付けやファイルのインクルードに関する問題に直面します。
全ての Yii クラスは、`C` から始まるので、クラスの命名問題はそれほど起こらないでしょうし、
また、Yii はクラスファイルのインクルードを行うために
[SPL autoload](http://us3.php.net/manual/en/function.spl-autoload.php) を頼っているので、
同じオートローディング機能を使用するか、クラスファイルを含むように
PHP インクルードパスが設定されていれば、うまく他のライブラリーを動作させられます。
以下では、例として、Yii アプリケーションで
[Zend framework](http://www.zendframework.com) の、
[Zend_Search_Lucene](http://www.zendframework.com/manual/ja/zend.search.lucene.html)
コンポーネントを使用する方法を解説します。
まず、`protected` を
[アプリケーションベースディレクトリ](/doc/guide/basics.application#application-base-directory)
と仮定し、Zend framework リリースファイルを `protected/vendors` ディレクトリ以下に展開します。
`protected/vendors/Zend/Search/Lucene.php` ファイルがある事を確認してください。
次に、コントローラクラスファイルの最初に、下記の行を追加します:
~~~
[php]
Yii::import('application.vendors.*');
require_once('Zend/Search/Lucene.php');
~~~
上記のコードで、クラスファイル `Lucene.php` をインクルードします。
相対パスを使用するため、正しくファイルを見つけられるように PHP
インクルードパスを変える必要があります。
これは、`require_once` の前に、`Yii::import` をコールする事で行われます。
上記セットアップの時点で、準備が出来ているため、
下記のように、コントローラアクション中で `Lucene` クラスを使用できます。
~~~
[php]
$lucene=new Zend_Search_Lucene($pathOfIndex);
$hits=$lucene->find(strtolower($keyword));
~~~
<div class="revision">$Id: extension.integration.txt 251 2008-11-19 22:28:46Z qiang.xue $</div>