PHPでExcelファイルを読み書きできるライブラリ PHPExcel はもう更新停止してるけど、数年前くらいのPHP5環境でちょろっとExcelを読み書きしたい時などにはまだまだ有用です。そのままだとけっこうファイルが多くて、単純にはそれをそのまま本番サーバーにも置いて使いますが、PHPExcel自体のソースコードを読むこともなく使うだけなら、phar ファイル1つにまとめるとすっきりします。
環境
- PHP 5.3
- CentOS 6.10
PHPExcelダウンロード展開
PHPOffice/PHPExcel Release から最新版をダウンロードして展開。
展開してできたフォルダ内の Classes フォルダで作業します。
そこにある PHPExcel フォルダと PHPExcel.php ファイルを phar ファイル1つにまとめます。
php.iniでPhar作成許可
phar.readonly = 0
phar.require_hash = 0
box2 インストール
box3 ではなく box2 を使います。
$ curl -LSs https://box-project.github.io/box2/installer.php | php
box.json作成
{
"directories": ["PHPExcel"],
"main": "PHPExcel.php",
"output": "PHPExcel.phar",
"compression": "GZ",
"chmod": "0755",
"stub": true
}
phar生成
$ ./box.phar build
PHPExcel.phar ファイルができます。
利用
phar:// というスキームで phar ファイルを指定し、続けて中のファイル名を書いて require します。
require_once 'phar://PHPExcel.phar/PHPExcel.php';
$book = \PHPExcel_IOFactory::load('book.xlsx');
フルパスでも問題ないようです。
require_once 'phar://'.__DIR__.'/PHPExcel/PHPExcel.phar/PHPExcel.php';
phar ファイル1つだけで使えるようになりました。
あれ・・?
よく見たらGitHubのPHPExcel/Buildってフォルダに、phar作れそうなものが入ってた・・。
phingというツールを使ってるようだ。これ使えばよかったのか・・うーんまあいいか動いてるから。。