CodeIgniter Night に参加すること3回、そろそろ使うべきだろう…趣味の開発に使おう、せっかくなら CodeIgniter4 で!と思ったらインストールでコケたのでメモ。
2017/09/28 追記
@kenjis さんからコメントを頂き、codeigniter-composer-installer
の issue については、
本件の「CodeIgniter4 の Packagistの問題」とは関係ないことを示して頂きました。
記事中の、無関係と思われる箇所は打ち消しています。
CodeIgniter4 はこちら
https://github.com/bcit-ci/CodeIgniter4
先を読む前に、下記の Issue を確認してください。解決されているかも。
https://github.com/bcit-ci/CodeIgniter4/issues/726
https://github.com/kenjis/codeigniter-composer-installer/issues/25 コメント参照
ユーザーガイドにしたがってインストールしたかった
CodeIgniter4 から Composer でのインストールに対応、ということで。
CodeIgniter4 User Guide の Installation に、Composer でインストールする方法が書かれています。
composer create-project codeigniter4/framework
…としたあと、初めて使うのでユーザーガイドを最初から読んで作業していこうとしたのですが、なんだかつまづく…
Packagist を見てみる
codeigniter4/framework
を確認してみます。
何もおかしなところは無さそう…と思いきや
この package の GitHub リポジトリを見ると、
https://github.com/sabri-elgueder/CodeIgniter4
https://github.com/bcit-ci/CodeIgniter4 ではありません!
@kenjis さんの codeigniter-composer-installer を試す
codeigniter-composer-installer
は、たしか CodeIgniter4 にも対応していたような…ということで
composer create-project kenjis/codeigniter-composer-installer codeigniter
をためすと、 Composer の post-create-project-cmd
がエラーを吐いて止まってしまいました。
追記 上記のPackagistの問題とは関係ありませんでした。ただし、下記は「検証/調査をした流れ」に基づいているのでそのまま残します コメント参照
GitHub で公開されているもので問題が発生したら、 Issue を確認するクセをつけはじめているので、確認すると…
Can't install the official CodeIgniter4
という Issue が@kenjisさんご自身で立てられてました。
CodeIgniter4 本体の Issue へのリンクがあるため、そちらを確認します。
Composer intall, as described in documentation, points to different github repository(!)
この記事執筆時点で13時間前に立てられた、タイムリーな Issue です…orz
Packagist に(他人が?勝手に?)パッケージを公開している、そのパッケージが悪意のある人間だと、セキュリティ上攻撃に使われるかもしれない、ということですね
(この場合、Packagistの公開を消してもらう、とかになるんですかね…?)
応急処置
追記 問題なく codeigniter-composer-installer
で導入できることが確認できました。なので、下記作業は必要ありません! コメント参照
codeigniter-composer-installer を使うことにしたので、
composer.json
, composer.json.dist
の repositories
を下記のようにしました
"repositories": [
{
"type": "package",
"package": {
"name": "codeigniter4/framework",
"version": "4.0.0-dev",
"dist": {
"url": "https://github.com/bcit-ci/CodeIgniter4/archive/develop.zip",
"type": "zip"
},
"source": {
"url": "https://github.com/bcit-ci/CodeIgniter4.git",
"type": "git",
"reference": "develop"
}
}
}
],
これで一応、動作はできるように。ただ、実用には耐えないと思います。
ユーザーガイドが変わる (codeigniter4/framework とは違う名前にする)が早く確実な対応方法なのかなぁ…