1. Composerでインストールしてみる
codeigniter/frameworkのとおりにやると、
$ composer require codeigniter/framework
/
├── composer.json
├── composer.lock
└── vendor
├── autoload.php
├── codeigniter
└── composer
composer.json
{
"require": {
"codeigniter/framework": "^3.0"
}
}
これだと、index.phpが vendor/codeigniter/framework/ にいて、ここをルートにする仕様なのかな?
create-project も試してみる。
$ composer create-project codeigniter/framework [dir_name]
/
└── dir_name
├── application
├── composer.json
├── composer.lock
├── contributing.md
├── index.php
├── license.txt
├── readme.rst
├── system
├── user_guide
└── vendor
これならよさそうかと思ったら、フレームワークのコアがvendorの外のsystemに入っててなんかおかしい。github のディレクトリ構成が Composer向きじゃないのかな。
Composerではなくて、Sparksなのでしょう。
2. require を使う方向でファイル構成変更する
まず、composer.json をそれっぽく書き足す。
composer.json
{
"require": {
"php": ">=5.2.4",
"codeigniter/framework": "^3.0"
},
"require-dev": {
"mikey179/vfsStream": "1.1.*"
}
}
index.phpと appricationディレクトリを頭ににコピーする。.htaccess も置いておく。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
/
├── .htaccess
├── application
├── composer.json
├── composer.lock
├── index.php
└── vendor
├── autoload.php
├── codeigniter
├── composer
└── mikey179
index.php を直す。
index.php
$system_path = 'vendor/codeigniter/framework/system';
apprication/config/config.php を直す。
config.php
//$config['composer_autoload'] = FALSE;
$config['composer_autoload'] = TRUE;
$config['composer_autoload'] = FCPATH . '/vendor/autoload.php';
create-project でこんな感じになってくれるといいなと思う。composer update もできるし、他のフレームワークはこういう方向よね?