CodeIgniter4 を composer create-project したらコケた

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~~ [コメント参照](https://qiita.com/chatii0079/items/1114f03e823d5d1bfa47#comment-9e893fb2ac42f9a374c6)

## ユーザーガイドにしたがってインストールしたかった

CodeIgniter4 から Composer でのインストールに対応、ということで。
CodeIgniter4 User Guide の [Installation](https://bcit-ci.github.io/CodeIgniter4/installation/index.html) に、Composer でインストールする方法が書かれています。

```bash
composer create-project codeigniter4/framework
```

…としたあと、初めて使うのでユーザーガイドを最初から読んで作業していこうとしたのですが、なんだかつまづく…

## Packagist を見てみる

`codeigniter4/framework` を確認してみます。

https://packagist.org/packages/codeigniter4/framework

何もおかしなところは無さそう…と思いきや

この package の GitHub リポジトリを見ると、
https://github.com/sabri-elgueder/CodeIgniter4

[https://github.com/bcit-ci/CodeIgniter4](https://github.com/bcit-ci/CodeIgniter4) **ではありません！**

## @kenjis さんの [codeigniter-composer-installer](https://github.com/kenjis/codeigniter-composer-installer) を試す

`codeigniter-composer-installer` は、たしか CodeIgniter4 にも対応していたような…ということで

```bash
composer create-project kenjis/codeigniter-composer-installer codeigniter
```

~~をためすと、 Composer の `post-create-project-cmd` がエラーを吐いて止まってしまいました。~~

**追記 上記のPackagistの問題とは関係ありませんでした。ただし、下記は「検証/調査をした流れ」に基づいているのでそのまま残します** [コメント参照](https://qiita.com/chatii0079/items/1114f03e823d5d1bfa47#comment-9e893fb2ac42f9a374c6)

GitHub で公開されているもので問題が発生したら、 Issue を確認するクセをつけはじめているので、確認すると…
[Can't install the official CodeIgniter4](https://github.com/kenjis/codeigniter-composer-installer/issues/25)
という Issue が@kenjisさんご自身で立てられてました。

CodeIgniter4 本体の Issue へのリンクがあるため、そちらを確認します。
[Composer intall, as described in documentation, points to different github repository(!)](https://github.com/bcit-ci/CodeIgniter4/issues/726)

この記事執筆時点で13時間前に立てられた、タイムリーな Issue です…orz

Packagist に(他人が？勝手に？)パッケージを公開している、そのパッケージが悪意のある人間だと、セキュリティ上攻撃に使われるかもしれない、ということですね

（この場合、Packagistの公開を消してもらう、とかになるんですかね…？）

## 応急処置

**追記 問題なく `codeigniter-composer-installer` で導入できることが確認できました。なので、下記作業は必要ありません！** [コメント参照](https://qiita.com/chatii0079/items/1114f03e823d5d1bfa47#comment-9e893fb2ac42f9a374c6)

[codeigniter-composer-installer](https://github.com/kenjis/codeigniter-composer-installer) を使うことにしたので、

`composer.json`, `composer.json.dist` の `repositories` を下記のようにしました

```composer.json
"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 とは違う名前にする)が早く確実な対応方法なのかなぁ…