新浪云云虚拟主机PHP5.6、PHP7.0支持phar扩展

考虑到现在很多个人和sdk提供方仍然使用phar包分发封装PHP包,新浪云的云虚拟主机运行环境已经增加支持phar扩展。

创建一个phar包

可以借安装PHP时带的phar命令创建一个phar包,比如我本地的目录结构是这样子的

[root@websocketdemo /phar]# ls -al
total 8  
drwxr-xr-x  3 root root   35 Jan 19 14:03 .  
drwxr-xr-x 22 root root 4096 Jan 18 10:19 ..  
drwxr-xr-x  2 root root   18 Jan 18 02:09 example  
-rw-r--r--  1 root root  395 Jan 18 02:13 test.php

我需要把文件都打包为一个文件名为lazy20170119.phar的文件,直接执行:

[root@websocketdemo /phar]# phar pack -f lazy20170119.phar ./
example/a.txt  
test.php  

这样就打包完成了。

从程序中读取包中的文件

验证程序如下:

<?php  
try {  
    $p = new Phar('./lazy20170119.phar', FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME,
                  'lazy.phar');
} catch (UnexpectedValueException $e) {
    die('Could not open my.phar');
} catch (BadMethodCallException $e) {
    echo 'technically, this cannot happen';
}
// this works now
echo file_get_contents('phar://lazy.phar/example/a.txt');  
?>

验证一下输出:

[root@websocketdemo /phar]# php test.php 
hello phar  

可以正常工作,把以上的lazy20170119.phartest.php上传到云虚拟机的运行环境,验证PHP5.6和PHP7.0都是正常工作的。