0

I want to create a single-file executable of some PHP cli application, which should reside under eg. "/usr/local/bin" after it's packaged up as PHAR. This works quite well already, however there is something i am a little confused with:

It seems, that on creation the destination file requires to have the ".phar" extension. when i want to create a phar without extension new Phar('/usr/local/bin/app', ...) an exception is thrown:

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 ...

However: when i create it with '.phar' extension and rename it after creation, everything seems to work. I wonder why that is, that i need the extension on create-time and if i might have any issues when i rename the file after it's creation?

aurora
  • 9,607
  • 7
  • 36
  • 54

2 Answers2

1

You can add php's shebang (#!/usr/bin/php) to the begining of the Stub (with setStub) in orther to make your phar executable.

See How to make an executable phar? for more informations

Community
  • 1
  • 1
magnetik
  • 4,351
  • 41
  • 58
1

I have only briefly used Phar, and renaming the extension for me seem to present no issues... but it has only been for simply packaging up some classes to be included in other projects.

Brian
  • 8,418
  • 2
  • 25
  • 32
  • 1
    after thoroughly testing i came to the conclusion, that there are indeed no problems renaming the package. it seems that the suffix is only needed for the PHAR extension to detect what kind of package there should be created. thanks! – aurora Jul 26 '11 at 12:02