FuelPHPのコアを複数のアプリで共有する方法
FuelPHPのコアを複数のアプリケーションで共有する方法。
1.FuelPHP本体の配置
まずはFuelPHPをダウンロードして配置する。
パスが通れば何処でも良いのだけれど、とりあえず、例として、~/web/に置いてみる。
こんな感じ。
2.アプリケーションの配置
~/web/hoge/以下に hoge というディレクトリを作成し、アプリケーションを配置することにする。
ripper@skuld002:~/web$ pwd /home/ripper/web ripper@skuld002:~/web$ mkdir hoge ripper@skuld002:~/web$ cp -r ./fuelphp/fuel/app/ ./fuelphp/public/ ./fuelphp/oil ./hoge
んで、~/web/ 以下はこんな感じになる。
ripper@skuld002:~/web$ pwd /home/ripper/web ripper@skuld002:~/web$ tree -L 3 . ├── fuelphp │ ├── CHANGELOG.md │ ├── CONTRIBUTING.md │ ├── README.md │ ├── TESTING.md │ ├── build.xml │ ├── fuel │ │ ├── LICENSE │ │ ├── app │ │ ├── core │ │ └── packages │ ├── oil │ └── public │ ├── assets │ └── index.php └── hoge ├── app │ ├── bootstrap.php │ ├── cache │ ├── classes │ ├── config │ ├── lang │ ├── logs │ ├── migrations │ ├── modules │ ├── tasks │ ├── tests │ ├── tmp │ ├── vendor │ └── views ├── oil └── public ├── assets └── index.php
3.パスの変更
ディレクトリの配置がデフォルトとは違うので、~/web/hoge/public/index.php 及び、~/web/hoge/oil からのパスを変更してやる。
~/web/hoge/public/index.php
/** * Path to the application directory. */ define('APPPATH', realpath(__DIR__.'/../app').'/'); /** * Path to the default packages directory. */ define('PKGPATH', realpath(__DIR__.'/../../fuelphp/fuel/packages').'/'); /** * The path to the framework core. */ define('COREPATH', realpath(__DIR__.'/../../fuelphp/fuel/core').'/');
~/web/hoge/oil
/** * Path to the application directory. */ define('APPPATH', realpath(__DIR__.'/app').'/'); /** * Path to the default packages directory. */ define('PKGPATH', realpath(__DIR__.'/../fuelphp/fuel/packages').'/'); /** * The path to the framework core. */ define('COREPATH', realpath(__DIR__.'/../fuelphp/fuel/core').'/');
4.セットアップ
php oil refine install を実行する。
ripper@skuld002:~/web$ pwd /home/ripper/web ripper@skuld002:~/web$ php ./hoge/oil refine install Made writable: /home/ripper/web/hoge/app/cache Made writable: /home/ripper/web/hoge/app/logs Made writable: /home/ripper/web/hoge/app/tmp Made writable: /home/ripper/web/hoge/app/config
あとは、ドキュメントルートを ~/web/hoge/public とするだけ。
以上でインストールは完了〜。
ちなみに、アプリを追加する場合は、2〜4を繰り返す。
その他
長々書いて置いてあれだけれど、oil及び、index.phpのパスさえ適切に設定してやれば、コアはどこに配置しても良い。
ただ、アプリケーションとコア類の位置関係を統一して、パスを相対パスで書いておけば、index.php 及びoilのパスを毎回書き換える必要がないので楽かもしれない。
(oilを各アプリで所持させるのではなく、実行時にアプリのディレクトリ名を入力させて分岐させる形に書き換えるともっと楽かもしれない。)