mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-02 21:41:19 +08:00
merge from yiisoft/yii2
This commit is contained in:
@ -2,14 +2,14 @@
|
||||
============================
|
||||
|
||||
時々、Yii アプリケーションの中でサードパーティのコードを使用する必要があることがあります。
|
||||
あるいは、サードパーティのシステムの中で Yii をライブラリとして使用したいこともあるでしょう。
|
||||
このセクションでは、こういう目的をどうやって達成するかを説明します。
|
||||
あるいは、サードパーティのシステムの中で Yii をライブラリとして使用したいこともあるでしょう。このセクションでは、こういう目的をどうやって達成するかを説明します。
|
||||
|
||||
|
||||
Yii の中でサードパーティのライブラリを使う <span id="using-libs-in-yii"></span>
|
||||
------------------------------------------
|
||||
|
||||
Yii アプリケーションの中でサードパーティのライブラリを使うために主として必要なことは、そのライブラリのクラスが適切にインクルードされること、または、オートロード可能であることを保証することです。
|
||||
Yii アプリケーションの中でサードパーティのライブラリを使うために主として必要なことは、
|
||||
そのライブラリのクラスが適切にインクルードされること、または、オートロード可能であることを保証することです。
|
||||
|
||||
### Composer パッケージを使う <span id="using-composer-packages"></span>
|
||||
|
||||
@ -20,7 +20,8 @@ Yii アプリケーションの中でサードパーティのライブラリを
|
||||
2. `composer install` を実行して、指定したパッケージをインストールする。
|
||||
|
||||
インストールされた Composer パッケージ内のクラスは、Composer のオートローダを使ってオートロードすることが出来ます。
|
||||
アプリケーションの [エントリ・スクリプト](structure-entry-scripts.md) に、Composer のオートローダをインストールするための下記の行があることを確認してください。
|
||||
アプリケーションの [エントリ・スクリプト](structure-entry-scripts.md) に、
|
||||
Composer のオートローダをインストールするための下記の行があることを確認してください。
|
||||
|
||||
```php
|
||||
// Composer のオートローダをインストール
|
||||
@ -37,7 +38,8 @@ require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
|
||||
ここで `BasePath` は、アプリケーションの [base path](structure-applications.md#basePath) を表すものです。
|
||||
|
||||
ライブラリがそれ自身のオートローダを持っている場合は、それをアプリケーションの [エントリ・スクリプト](structure-entry-scripts.md) でインストールすることが出来ます。
|
||||
複数のオートローダ・クラスの中で Yii のクラス・オートローダが優先されるように、ライブラリのオートローダは `Yii.php` ファイルをインクルードする前にインストールすることを推奨します。
|
||||
複数のオートローダ・クラスの中で Yii のクラス・オートローダが優先されるように、
|
||||
ライブラリのオートローダは `Yii.php` ファイルをインクルードする前にインストールすることを推奨します。
|
||||
|
||||
ライブラリがクラスオートローダを提供していない場合でも、クラスの命名規約が [PSR-4](http://www.php-fig.org/psr/psr-4/) に従っている場合は、ライブラリのクラスをオートロードするのに Yii のクラス・オートローダを使うことが出来ます。
|
||||
必要なことは、ライブラリのクラスによって使われている全てのルート名前空間に対して [ルート・エイリアス](concept-aliases.md#defining-aliases) を宣言することだけです。
|
||||
@ -56,11 +58,12 @@ require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
|
||||
上記のどちらにも当てはまらない場合、おそらくそのライブラリは、クラス・ファイルを探して適切にインクルードするために、PHP の include path 設定に依存しているのでしょう。
|
||||
この場合は、PHP include path の設定に関するライブラリの指示に従うしかありません。
|
||||
|
||||
最悪の場合として、ライブラリが全てのクラス・ファイルを明示的にインクルードすることを要求している場合は、次の方法を使ってクラスを必要に応じてインクルードすることが出来るようになります。
|
||||
最悪の場合として、ライブラリが全てのクラス・ファイルを明示的にインクルードすることを要求している場合は、
|
||||
次の方法を使ってクラスを必要に応じてインクルードすることが出来るようになります。
|
||||
|
||||
* ライブラリに含まれるクラスを特定する。
|
||||
* アプリケーションの [エントリ・スクリプト](structure-entry-scripts.md) において、クラスと対応するファイル・パスを `Yii::$classMap` としてリストアップする。
|
||||
例えば、
|
||||
* アプリケーションの [エントリ・スクリプト](structure-entry-scripts.md) において、
|
||||
クラスと対応するファイル・パスを `Yii::$classMap` としてリストアップする。例えば、
|
||||
```php
|
||||
Yii::$classMap['Class1'] = 'path/to/Class1.php';
|
||||
Yii::$classMap['Class2'] = 'path/to/Class2.php';
|
||||
@ -70,41 +73,30 @@ Yii::$classMap['Class2'] = 'path/to/Class2.php';
|
||||
サードパーティのシステムで Yii を使う <span id="using-yii-in-others"></span>
|
||||
-------------------------------------
|
||||
|
||||
Yii は数多くの優れた機能を提供していますので、サードパーティのシステム (例えば、WordPress、Joomla、または、他の PHP フレームワークを使って開発されるアプリケーション) を開発したり機能拡張したりするのをサポートするために Yii の機能のいくつかを使用したいことがあるでしょう。
|
||||
例えば、[[yii\helpers\ArrayHelper]] クラスや [アクティブレコード](db-active-record.md) をサードパーティのシステムで使いたいことがあるでしょう。
|
||||
Yii は数多くの優れた機能を提供していますので、サードパーティのシステム (例えば、WordPress、Joomla、または、他の PHP フレームワークを使って開発されるアプリケーション)
|
||||
を開発したり機能拡張したりするのをサポートするために Yii の機能のいくつかを使用したいことがあるでしょう。
|
||||
例えば、[[yii\helpers\ArrayHelper]] クラスや [アクティブ・レコード](db-active-record.md) をサードパーティのシステムで使いたいことがあるでしょう。
|
||||
この目的を達するためには、主として、二つのステップを踏む必要があります。
|
||||
すなわち、Yii のインストールと、Yii のブートストラップです。
|
||||
|
||||
サードパーティのシステムが Composer を使って依存を管理している場合は、単に下記のコマンドを実行すれば Yii をインストールすることが出来ます。
|
||||
サードパーティのシステムが Composer を使って依存を管理している場合は、
|
||||
単に下記のコマンドを実行すれば Yii をインストールすることが出来ます。
|
||||
|
||||
composer global require "fxp/composer-asset-plugin:~1.3.1"
|
||||
composer require yiisoft/yii2
|
||||
composer install
|
||||
|
||||
最初のコマンドは [composer アセット・プラグイン](https://github.com/francoispluchino/composer-asset-plugin/) をインストールします。
|
||||
これは、Composer によって bower と npm の依存パッケージを管理できるようにするものです。
|
||||
このことは、データベースなど、アセットに関係しない Yii の機能を使いたいだけの場合でも、Yii の Composer パッケージをインストールするために必要とされます。
|
||||
|
||||
[Yii のアセット発行の機能](structure-assets.md) を使いたい場合は、あなたの `composer.json` の `extra` セクションに次の構成も追加しなければなりません。
|
||||
|
||||
```json
|
||||
{
|
||||
...
|
||||
"extra": {
|
||||
"asset-installer-paths": {
|
||||
"npm-asset-library": "vendor/npm",
|
||||
"bower-asset-library": "vendor/bower"
|
||||
}
|
||||
}
|
||||
}
|
||||
```bash
|
||||
composer require yiisoft/yii2
|
||||
```
|
||||
|
||||
Composer に関する更なる情報や、インストールの過程で出現しうる問題に対する解決方法については、一般的な [Composer によるインストール](start-installation.md#installing-via-composer) のセクションを参照してください。
|
||||
データベース抽象レイヤなど、アセットに関係しない Yii の機能だけを使用したい場合は、
|
||||
Bower および NPM のパッケージのインストールを阻止する特別な composer パッケージが必要になります。
|
||||
詳細については [cebe/assetfree-yii2](https://github.com/cebe/assetfree-yii2) を参照して下さい。
|
||||
|
||||
そうでない場合は、Yii のリリースを [ダウンロード](http://www.yiiframework.com/download/) して、`BasePath/vendor` ディレクトリに解凍してください。
|
||||
Composer に関する更なる情報や、インストールの過程で出現しうる問題に対する解決方法については、
|
||||
一般的な [Composer によるインストール](start-installation.md#installing-via-composer) のセクションを参照してください。
|
||||
|
||||
次に、サードパーティのシステムのエントリ・スクリプトを修正します。
|
||||
次のコードをエントリ・スクリプトの先頭に追加してください。
|
||||
そうでない場合は、Yii のリリースを [ダウンロード](http://www.yiiframework.com/download/) して、
|
||||
`BasePath/vendor` ディレクトリに解凍してください。
|
||||
|
||||
次に、サードパーティのシステムのエントリ・スクリプトを修正します。次のコードをエントリ・スクリプトの先頭に追加してください。
|
||||
|
||||
```php
|
||||
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
|
||||
@ -115,13 +107,15 @@ new yii\web\Application($yiiConfig); // ここで run() を呼ばない
|
||||
|
||||
ごらんのように、上記のコードは典型的な Yii アプリケーションの [エントリ・スクリプト](structure-entry-scripts.md) と非常に良く似ています。
|
||||
唯一の違いは、アプリケーションのインスタンスが作成された後に `run()` メソッドが呼ばれない、という点です。
|
||||
`run()` を呼ぶと Yii がリクエスト処理のワークフローを制御するようになりますが、この場合はリクエストを処理する別のアプリケーションが既に存在していますので、これは必要ではないからです。
|
||||
`run()` を呼ぶと Yii がリクエスト処理のワークフローを制御するようになりますが、
|
||||
この場合はリクエストを処理する別のアプリケーションが既に存在していますので、これは必要ではないからです。
|
||||
|
||||
Yii アプリケーションでの場合と同じように、サードパーティ・システムが走っている環境に基づいて Yii のアプリケーション・インスタンスを構成する必要があります。
|
||||
例えば、[アクティブレコード](db-active-record.md) の機能を使うためには、サードパーティ・システムによって使用されている DB 接続の設定を使って `db` [アプリケーション・コンポーネント](structure-application-components.md) を構成しなければなりません。
|
||||
例えば、[アクティブ・レコード](db-active-record.md) の機能を使うためには、サードパーティ・システムによって使用されている DB 接続の設定を使って
|
||||
`db` [アプリケーション・コンポーネント](structure-application-components.md) を構成しなければなりません。
|
||||
|
||||
これで、Yii によって提供されているほとんどの機能を使うことが出来ます。
|
||||
例えば、アクティブレコード・クラスを作成して、それを使ってデータベースを扱うことが出来ます。
|
||||
例えば、アクティブ・レコード・クラスを作成して、それを使ってデータベースを扱うことが出来ます。
|
||||
|
||||
|
||||
Yii 2 を Yii 1 とともに使う <span id="using-both-yii2-yii1"></span>
|
||||
|
||||
Reference in New Issue
Block a user