PHP 5.3之後,新增了Phar,可以將Library打包成phar檔(有點類似Java的jar檔),這樣可以讓專案更容易移植
打包phar(php.ini中的phar.readonly參數要改成Off)
//定義檔名 $phar = new Phar('My.phar'); //預設直接執行phar檔會去跑index.php,假設Library中沒有index.php的話,可以使用setStub來設定 $phar->setStub('<?php echo "Hello\n"; __HALT_COMPILER(); ?>'); //只定義目錄的話,預設會打包index.php $phar->buildFromDirectory(dirname(__FILE__).'/class'); //打包class目錄底下的php檔案 $phar->buildFromDirectory(dirname(__FILE__).'/class', '/\.php$/'); //以 GZ 格式壓縮 $phar->compressFiles( Phar::GZ ); //處理完成,寫入檔案 $phar->stopBuffering();
使用
require 'phar://My.phar/Test.php'; require 'phar://My.phar/Test2.php'; $a = new Test(); $a -> test_a(); $b = new Test2(); $b -> test_b();