Edited at

FuelPHPでComposerが入ってないって怒られた時の対処方法

More than 1 year has passed since last update.


環境



  • Windows 8.1 64bit


  • Vagrant 1.8.1


  • PHP 5.5.33 (cli)

    Copyright (c) 1997-2015 The PHP Group

  • FuelPHP Version: 1.7.3




FuelPHP入れてlocalhostにアクセスしたらこんなErrorが表示された。

Composer is not installed.


Composerとは?

Note1


ComposerはPHPの新しいパッケージ(ライブラリ)管理ツールです。PHP5.3.2以降で利用できます。プロジェクトごとに必要なパッケージを管理できます。公式サイトは、http://getcomposer.org/です。


Note2


ComposerはPHPの依存管理ツールです。 Composerはあなたのプロジェクトが必要とする依存ライブラリを定義できるようにして、インストールを行います。

このアイデアは新しいものではありません。 Composerはnodeのnpmやrubyのbundlerに強くインスパイアされています。 しかし、PHPにはそのようなツールがありませんでした。



そもそもなぜComposerが必要なのか


FuelPHP1.6からComposerが正式採用され、一部のライブラリがComposerで管理されるようになり、1.7.2からはFuelPHPのサブリポジトリもComposer経由でインストールされるようになりました。


という事でFuelPHPを使うに当たってはComposerが必要であるとわかります。


Composerをinsatallしよう。

composerをダウンロード&インストールする。

※root権限で実行しましょう

curl -sS https://getcomposer.org/installer | php

が、なぜか..

  Could not load package composer/installers in http://packagist.org: [UnexpectedV

alueException] Could not parse version constraint ^1.0: Invalid version string "
^1.0"

怒られた。

原因を探るとStack Overflowで解決策を発見。

UnexpectedValueException Could not parse version constraint ^1.0.2: Invalid version string “^1.0.2”


Composer added the ability to use the caret operator in early December 2014. Updating Composer will eliminate this problem - which is quite common because everyone uses PHPUnit, and PHPUnit started using this operator in late January 2015.


意訳すると


Composerをupdateする事でこの問題は解決します!


(このErrorで吐かれている内容としては、^1.0のように^(caret operator)を使ってバージョンを指定する機能は後から追加されたもので、composerコマンドが古いバージョンだと^(caret operator)を理解できずエラーになります。つまり、composer自体をupdateしないと^(caret operator)が認識できない為に例外処理が発生しました。)


composer updateを実行する。

[root@localhost fuelphp]# composer update

You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug
Loading composer repositories wUpdating dependencies (including require-dev) - Installing composer/installers (v1.0.23)
Downloading: 100%

- Installing fuel/docs (dev-1.7/master 473174d)
Cloning 473174da2cf503c60d4a9935b71acfc31f0906d0

- Installing fuel/core (dev-1.7/master f614b30)
Cloning f614b30e1f76389580c2d97991ab3f25c1533a29

- Installing fuel/auth (dev-1.7/master aa9bd2e)
Cloning aa9bd2e5104026814ff516aacf03258f62a94a55

- Installing fuel/email (dev-1.7/master 8fbf378)
Cloning 8fbf378d74bac170a96cad96ba0aed77e319a865

- Installing fuel/oil (dev-1.7/master ea37c3a)
Cloning ea37c3a7fe8675fb3327327213b2eca55303933a

- Installing fuel/orm (dev-1.7/master 5e05c30)
Cloning 5e05c3068562548657fea69850a23b23f65a5545

- Installing fuel/parser (dev-1.7/master 0cacd10)
Cloning 0cacd10d7b1b8f92a0eeddce75c6ba2c0c28112f

- Installing fuelphp/upload (2.0.2)
Downloading: 100%

- Installing psr/log (1.0.0)
Downloading: 100%

- Installing monolog/monolog (1.5.0)
Downloading: 100%

- Installing michelf/php-markdown (1.4.0)
Downloading: 100%

monolog/monolog suggests installing mlehner/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
Writing lock file
Generating autoload files

localhostに入って画面が表示されれば大丈夫です。

※GihubのトークンをつくらないといけないErrorもありますので、気を付けて下さい。


参考文献