IRB,

この投稿は2年半前の記事です。 情報が古くなっている可能性があるので、その点ご了承ください。
2015 年 1 月 19 日 827日前)
2,156文字 (読了時間5分)

SPONSORED LINK

タイトルそのまんまなんですが、Borisというのがあるらしいです。RubyやPythonにはインタラクティブシェルというのがあって、ターミナルから文字通り「対話的に」コーディングを行えます。

Pythonのインラタクティブシェル、IPython
Pythonのインラタクティブシェル、IPython

一応、PHPにもこういうのはあって、 php -a とやるとインタラクティブシェルが起動するのですが、IPythonやIRBにあるような戻り値の自動表示がありません。いちいちecho しなければいけないので、大変ダルいんですね。

変数を定義しても表示されない
変数を定義しても表示されない

そこでBorisというのを使うと、戻り値がいい感じにわかります。

Borisを実行したところ
Borisを実行したところ

いいですね。Macならhomebrewで入れるのが楽です。

Borisをライブラリに同梱する

で、それはそれで「オシャレやね」という程度ですが、このBorisはライブラリを読み込んだ状況で始めることができます。

たとえば、僕はいまHamePubというePub生成用のPHPライブラリ(既存WebサイトのHTMLを突っ込んでePubを作れる)を作っている最中なのですが、いかんせんライブラリなので、それ自体では特になにも起きないんですね。外部から呼び出されることではじめて動作します。

したがって、このライブラリの開発では、ライブラリ自体のコーディングとは別に、ライブラリを使用する側のコードも書く必要があります。

一応、ユニットテストは導入済みなんですが、いちいちテストから書きたくないという思いもあるので、「諸々設定済みの状況で始められねーかなー」という場合があります。そんなとき、Borisを設定して用意しておけば楽ですね。

// composer.json
"require-dev": {
    "phpunit/phpunit": "4.4.*",
    "d11wtq/boris": "1.0.8"
}

たとえば、composer.jsonに書いておくと、composer install した段階でBorisのオートローダーが生成されます。

あとはこれをキックするphpをどっかに(プロジェクトルート/binとかですかね)においておけば、コードの記述とその操作が簡単にできます。今回はプロジェクトルートにおいてしまいましょう。

# プロジェクトルートで実行
vi hamepub
chmod +x hamepub

hamepubファイルの中身はこんな感じです。

#!/usr/bin/env php
<?php
/**
 * Command line utility
 *
 * @package Hametuha\HamePub
 */
// コマンドラインじゃなければ停止
if( 'cli' !== php_sapi_name() ){
    die('This is command line tool.');
}

// Composerのオートローダーを読み込み
require_once __DIR__. '/vendor/autoload.php';

// Borisを初期化
$boris = new \Boris\Boris('hamepub> ');
$config = new \Boris\Config();
$config->apply($boris);

$options = new \Boris\CLIOptionsHandler();
$options->handle($boris);

// ローカル変数をセット
$boris->setLocal([
    'epub_id' => 10,
    'temp_dir' => __DIR__.DIRECTORY_SEPARATOR.'tests'.DIRECTORY_SEPARATOR.'tmp',
]);

// Start
$boris->start();

こうすると、プロジェクトルートで ./hamepub と実行すれば、設定済みのBorisが起動します。

ローカル変数やライブラリのクラスが読み込み済み
ローカル変数やライブラリのクラスが読み込み済み

変数も使用できます。かっこいいですね。あと、プロンプトの先頭が自分のライブラリ名になっているのもやる気がでます。

というわけで、Borisの紹介でした。ライブラリを配布する場合なんかに、これが付いていると導入が早いかもしれません。

CakePHPで学ぶ継続的インテグレーション (impress top gear)

CakePHPで学ぶ継続的インテグレーション (impress top gear) [書籍]

著者渡辺 一宏, 吉羽 龍太郎, 岸田 健一郎, 穴澤 康裕

クリエーター丸山 弘詩

出版社インプレス

出版日2014 年 9 月 19 日

商品カテゴリー単行本(ソフトカバー)

ページ数376

ISBN4844336789

Supported by amazon Product Advertising API

 

フォローしてください

ここで会ったのもなにかの縁。
高橋文樹.comの最新情報を見逃さないためにもフォローをお願いします。
めったに送らないメルマガもあります。

SPONSORED LINK

この記事について

この記事はが2015 年 1 月 19 日にプログラミングの記事として公開しました。

高橋先生の電子書籍

高橋先生の電子書籍

Amazonで電子書籍も買えます。

好きな言葉

ふう! 伝記作家って、悪魔だな。

— スティーブン・ミルハウザー

高橋先生の処女作

『途中下車』高橋文樹

2001年幻冬舎NET学生文学大賞受賞作です。

Web制作やります

Web制作やります

Web制作のご依頼は株式会社破滅派へ

不定期メルマガ

高橋文樹.comでは、不定期でニュースレターを配信しています。滅多に送らないので是非購読してください。

高橋文樹.comではプライバシーポリシーに準じて登録情報を取り扱います。