CI2プロジェクトに spark を導入

third_party に git submodule で追加したりしてみたりしてましたが、spark というパッケージ管理アプリがあったので、こっちを利用してみます。いわゆる rails のgem 的な。

導入

Option1 Quick Start for OSX and Linux に従うなら書かれているコマンドをプロジェクトのルートディレクトリで一発sudoで実行すれば終了です。

今回は、Normal Installation のプロジェクトディレクトリに導入する方法でやりました。

本家サイトの手順を訳したものでサクっと終わらせましょう。

  1.  spark-manager.zip をダウンロードする
  2. 展開したら、中身の入っているディレクトリを tools にリネームして、CIアプリケーションのルートに配置
  3. CIアプリルートに tools が配置され、その中に spark というファイルがあることを確認する
  4. http://getsparks.org/static/install/MY_Loader.php.txt ローダークラスの拡張を入手
  5. application/core/MY_Loader.php として配置します

$config[‘subclass_prefix’] を変更している場合は、MY_Loaderクラスを適宜書き換えれば動作します。

CIアプリルートで呼び出して、動くかどうかチェックします。バージョン情報が返ればOKです。

php tools/spark

コマンドでインストールする場合は、プロジェクトルートで実行します。

php -r "$(curl -fsSL http://getsparks.org/go-sparks"

コマンドは上記を全てやってくれるので、おすすめです。

パッケージのインストール

Get Sparks で紹介されているように example-spark パッケージをインストールしてみます。

php tools/spark install example-spark

自動的にダウンロードから配置までやってくれるので終わるまでしばし待ちます。

完了すると、アプリルートに sparks というディレクトリが出来上がります。インストールしたパッケージはココに格納されます。

expample-spark/1.0.0/ が出来上がり、そこにパッケージの内容が格納されているはずです。

バージョンごとにディレクトリが出来上がるので複数バージョン導入することが出来そうです。

パッケージの利用

パッケージのインストールは完了したので、次はロードします。ロードには load を拡張した spark を使います

$autoload['sparks'] = array('example-spark/1.0.0'); // autoload の場合
$this->load->spark('example-spark/1.0.0'); // Loaderクラスの場合
$this->example_spark->printHello(); // "Hello from the example spark!" が出力される

パスは spark/ 以下で {パッケージ名}/{バージョン} となります。

このサンプルには printHello() メソッドがあり、”Hello from the example spark!” という文字列を返すパッケージのようです。

各パッケージの使い方はそれぞれのドキュメントを参照するとして、 spark をつかった導入はこんな感じになります。

ディレクトリ構成を守れば、同様にロードできそうなので、spark で提供されていないパッケージでも、spark ディレクトリに放り込んだ方が一元的で管理しやすいかもしれません。

third_party の挙動がちょっと怪しいフシもあるので…

シェアする

  • このエントリーをはてなブックマークに追加

フォローする