用PHP/PHAR构建单文件可执行文件

用PHP/PHAR构建单文件可执行文件,php,phar,Php,Phar,我想为一些PHPCLI应用程序创建一个可执行文件,在打包为PHAR后,它应该位于例如“/usr/local/bin”下。这已经非常有效了,但是有一点我有点困惑: 看起来,在创建目标文件时需要具有“.phar”扩展名。当我想创建一个没有扩展名的phar新phar('/usr/local/bin/app',…)时,会引发一个异常: Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Cannot crea

我想为一些PHPCLI应用程序创建一个可执行文件,在打包为PHAR后,它应该位于例如“/usr/local/bin”下。这已经非常有效了,但是有一点我有点困惑:

看起来,在创建目标文件时需要具有“.phar”扩展名。当我想创建一个没有扩展名的phar
新phar('/usr/local/bin/app',…)
时,会引发一个异常:

Fatal error: Uncaught exception 'UnexpectedValueException' with message 
'Cannot create phar '/usr/local/bin/app', file extension (or combination) not 
recognised' in /Users/harald/... on line ...

然而:当我用“.phar”扩展名创建它并在创建后重命名它时,一切似乎都正常。我想知道为什么,我需要在创建时使用扩展名,并且在创建文件后重命名文件时是否会遇到任何问题?

我只简单地使用了Phar,为我重命名扩展名似乎没有任何问题。。。但这只是为了简单地打包一些类以包含在其他项目中。

您可以将php的shebang(
#!/usr/bin/php
)添加到orther中存根的开头(使用setStub),以使您的phar可执行


有关更多信息,请参见

在彻底测试后,我得出结论,重命名包确实没有问题。似乎只有PHAR扩展需要后缀来检测应该创建什么样的包。谢谢