5月 30, 2009

PHP_Archive_Creator続き

先日書いた、PHP_Archive_Creatorの件。
PHP-usersのメーリス(最近の若い人は、メーリングリストのことをメーリスって呼ぶらしいですよ!)に投げてみた。

そしたら、go-pearで使われているphar形式と、phar拡張モジュールでできるphar形式は別物とのこと。
そして、PHP_Archive_Creatorでつくったpharファイルは、go-pearと同じ形式なのでした。

phar拡張モジュールは、次のバージョンあたりから本体に取り込まれるという話も出ているので、そうなると、ますます展開が面倒になる。
レンタルサーバなどでは、実質展開できないことにもなる。

うーん、pharはまだ手を出さない方が良いな。と判断して、zip形式で配布することにしたのでした。

5月 28, 2009

PHP_Archive_Creator

とある要件で、複数のファイルを配布する必要が出てきた。
作業の都合上、PHPでインストーラを作れば便利なんじゃないかねと思い、そういえば、Pearのインストーラって、go-pear.pharだったよなと思い出した。

phar形式という、先頭に展開処理があって、後ろのほうにアーカイブがくっついている形式だ。
自己解凍ファイルと言えば解りやすいかも。

んで、pharファイルはどうやって作ろうか、と調べてみると、peclでpharモジュールを入れて、自前でアーカイブを作るページが出てきた。
うーん、やりたいことはgo-pear.pharみたいなことなんだよなぁ。

もう少し調べていると、pearのほうに、PHP_Archive_Creatorというのを見つけた。
アーカイブの作成から、最初に起動するphpファイルの指定まで出来るらしい。
これはすばらしい。

早速、アーカイブの作成処理を書いてみた。
addFile("./install_process.php", "index.php");

//stock( $phar, INSTALL_SOURCE );

// 保存するpharファイル名
$phar->savePhar("install.php");

function stock( &$phar, $dir_name ) {

foreach ( glob( $dir_name . '/*' ) as $filename ) {

$stockname = str_replace( INSTALL_SOURCE . '/', '', $filename );

print $stockname . "\n";
$phar->addFile( $filename, $stockname );
}

}
?>
そして実行すると、install.phpのできあがり。

しかし、これをブラウザから呼び出してみると、思いっきりPHPソースが表示された。
拡張子PHPの他のファイルはちゃんと実行されるのに。
さくらインターネットや@pagesにアップしてみたら、ちゃんと実行された。

ということは、開発環境のサーバが問題らしい。
ファイルの形式がおかしいにしても、拡張子PHPなんだから実行しようとしてくれたっていいのに、そこへも行き着いていない模様。
Apacheのエラーログもなにも出ず、アクセスログにHTTPステータス200が記録される。

一日ぐらい、あれやこれや試してみたんだけど、どうにも原因が分からないので、PHP-usersに投げる。

5月 09, 2009

ニンジン

写真またまたニンジンのヘタを育てています。
ニンジンのヘタを水につけておくと、伸びてくるんですよ。

前回育てていたやつは、根っこも生えてきたのですが、今回のは生えてきません。
根っこが生えてきたら安定した成長が出来そうなんだけど、根っこが生えないと土にも植えられないしなぁ。

早く成長するように、なるべく太陽に当てています。ベランダに出しておいた方が、たくさん太陽に当たるだろうと思って室外機の上に置いておいたら、すごい萎れてしまって焦りました。あまりの太陽パワーに、水がお湯に変わっていたのです。
慌てて水を入れ替えて、室内に待避。なんとか無事に復活しました。

写真は、室内からベランダのプランターを眺めるニンジン氏。