FuelPHP 1.xのパッケージをComposerでインストールする
FuelPHP 1.xはComposerと統合されていますので、FuelPHPのパッケージをComposerで管理することも可能です。
というか、Composerで管理した方が何かと便利でしょう。
FuelPHPのパッケージがPackagistに登録されている場合
あまり多くはないですが、FuelPHPのパッケージがPackagistに登録されていれば、普通のComposerのパッケージと同様にcomposer.jsonのrequireにパッケージ名を記載するだけでインストールできます。
例えば、このようにインストールできます。
まず、FuelPHPをComposerでインストールします。
$ composer create-project fuel/fuel:dev-1.7/master project --prefer-dist
composer requireコマンドでFuelPHPのパッケージ(hosopy/fuel-jobqueue)をインストールします。
$ cd project
$ composer require hosopy/fuel-jobqueue:dev-master
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing pda/pheanstalk (v3.0.2)
Downloading: 100%
- Installing symfony/process (v2.3.0)
Downloading: 100%
- Installing hosopy/fuel-jobqueue (dev-master 36a6843)
Cloning 36a6843b12fdfa97397d72f723e5f87132a1dc22
Writing lock file
Generating autoload files
これでfuel/packages以下にインストールされました。
$ ls -l fuel/packages/
total 0
drwxr-xr-x 12 kenji staff 408 6 30 06:10 auth
drwxr-xr-x 7 kenji staff 238 6 30 06:10 email
drwxr-xr-x 12 kenji staff 408 6 30 06:23 fuel-jobqueue
drwxr-xr-x 10 kenji staff 340 6 30 06:10 oil
drwxr-xr-x 7 kenji staff 238 6 30 06:10 orm
drwxr-xr-x 8 kenji staff 272 6 30 06:10 parser
ここでのcomposer.jsonの変更点は以下のみです。
$ git diff
diff --git a/composer.json b/composer.json
index 3fa09b0..26833d1 100644
--- a/composer.json
+++ b/composer.json
@@ -25,7 +25,8 @@
"fuel/parser": "dev-1.7/master",
"fuelphp/upload": "2.0.2",
"monolog/monolog": "1.5.*",
- "michelf/php-markdown": "1.4.0"
+ "michelf/php-markdown": "1.4.0",
+ "hosopy/fuel-jobqueue": "dev-master"
},
"suggest": {
"dwoo/dwoo" : "Allow Dwoo templating with the Parser package",
FuelPHPのパッケージがPackagistに登録されていない場合
Packagistに登録されていない場合は、composer.jsonのrepositoriesに以下のようにパッケージの情報を記載した上でインストールする必要があります。
ここでは、Benni-chan/FuelPHP-Pushnotificationsを例にします。
--- a/composer.json
+++ b/composer.json
@@ -11,7 +11,20 @@
{ "type": "vcs", "url": "https://github.com/fuel/email" },
{ "type": "vcs", "url": "https://github.com/fuel/oil" },
{ "type": "vcs", "url": "https://github.com/fuel/orm" },
- { "type": "vcs", "url": "https://github.com/fuel/parser" }
+ { "type": "vcs", "url": "https://github.com/fuel/parser" },
+ {
+ "type": "package",
+ "package": {
+ "name": "benni-chan/pushnotifications",
+ "type": "fuel-package",
+ "version": "1.0.0",
+ "source": {
+ "url": "https://github.com/Benni-chan/FuelPHP-Pushnotifications.git",
+ "type": "git",
+ "reference": "master"
+ }
+ }
+ }
],
"require": {
"php": ">=5.3.3",
@@ -26,7 +39,8 @@
"fuelphp/upload": "2.0.2",
"monolog/monolog": "1.5.*",
"michelf/php-markdown": "1.4.0",
- "hosopy/fuel-jobqueue": "dev-master"
+ "hosopy/fuel-jobqueue": "dev-master",
+ "benni-chan/pushnotifications": "1.0.*"
},
"suggest": {
"dwoo/dwoo" : "Allow Dwoo templating with the Parser package",
ここで、repositories全体は以下のようになっています。
"repositories": [
{ "type": "vcs", "url": "https://github.com/fuel/docs" },
{ "type": "vcs", "url": "https://github.com/fuel/core" },
{ "type": "vcs", "url": "https://github.com/fuel/auth" },
{ "type": "vcs", "url": "https://github.com/fuel/email" },
{ "type": "vcs", "url": "https://github.com/fuel/oil" },
{ "type": "vcs", "url": "https://github.com/fuel/orm" },
{ "type": "vcs", "url": "https://github.com/fuel/parser" },
{
"type": "package",
"package": {
"name": "benni-chan/pushnotifications",
"type": "fuel-package",
"version": "1.0.0",
"source": {
"url": "https://github.com/Benni-chan/FuelPHP-Pushnotifications.git",
"type": "git",
"reference": "master"
}
}
}
],
ここでは、パッケージのリポジトリにcomposer.jsonが存在しないため、"type": "package"を指定しパッケージの情報を記述します。
nameとversionは適当に指定します。パッケージをアップデートする場合は、versionを上げる必要があります。
"type": "fuel-package"はFuelPHPのパッケージであることの指定です。これがないとfuel/packages以下にインストールされません。
なお、インストール先がデフォルトのvendorから変更されるのは、composer/installerの機能です。requireに"composer/installers": "~1.0"のようにcomposer/installerが必ず必要です。FuelPHPのデフォルトのcomposer.jsonに記載されているので通常は意識することもないですが。
もし、パッケージのリポジトリにcomposer.jsonが存在する場合は、リポジトリの指定はFuelPHPの標準のパッケージのように以下の形式で済みます。
{ "type": "vcs", "url": "https://github.com/fuel/auth" }
composer.jsonの設定が済んだら、インストールします。
$ composer update benni-chan/pushnotifications
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing benni-chan/pushnotifications (1.0.0)
Cloning master
Writing lock file
Generating autoload files
これでfuel/packages以下にインストールされました。
$ ls -l fuel/packages/
total 0
drwxr-xr-x 12 kenji staff 408 6 30 06:10 auth
drwxr-xr-x 7 kenji staff 238 6 30 06:10 email
drwxr-xr-x 12 kenji staff 408 6 30 06:23 fuel-jobqueue
drwxr-xr-x 10 kenji staff 340 6 30 06:10 oil
drwxr-xr-x 7 kenji staff 238 6 30 06:10 orm
drwxr-xr-x 8 kenji staff 272 6 30 06:10 parser
drwxr-xr-x 7 kenji staff 238 6 30 06:56 pushnotifications
関連
Date: 2015/06/30



![徹底攻略PHP5技術者認定[上級]試験問題集 [PJ0-200]対応 徹底攻略PHP5技術者認定[上級]試験問題集 [PJ0-200]対応](http://tatsu-zine.com/images/books/164/cover_s.jpg)

