Packaging PHP as Exec
A friend of mine asked me what I thought of programs that convert your
php, mysql driven web site into an executable for end users. Programs like
Bambalam and ZZEE PHPExe.
I didn’t download them, but I think it basically sums up to packaging a
web-server, the necessary php and mysql libraries used in your site and a cloned web browser.
PHP does not come with a graphics library, like frame, window, button, etc. Therefore, you would always need to render the graphics in something like html.
Hence, the cloned browser.
I remember playing with a few compilers, just html, I think even before php came out, like 10 years ago, just to put together some eBooks, because that basically all you could do with it.
Now the programs package everything up in executable file that launches the
web-server, php, mysql, and then the cloned web-browser as one program.
All fine and good. But here are some thngs I think are worth taking into account:
I would think with all that packaged, the users executable file or files will be
pretty big. I may be wrong but depending on your content, the file will probably
be 10 megs or more.
So you may have to distribute it kind of like the OS in a cd/dvd/pen deal.
If you change wording or something in one of your html files, do you have to
repackage everything (updates) and what happens to current settings, databases, etc? And how will that effect your work flow.
What happens if you have to get the full file path in php, where is the program
installed?
Are the mysql tables, users, etc, created in the database before it is packaged?
And if needed, how will you bind changing user data with your own. For instance,
the user is offline, and uses the database, and you need to update the changes
on your servers database.
Another alternative is Google Gears, but its not a package it up solution, and you basically do have to understand the Gears API.
Will JavaScript, DOM, etc., work with the cloned browser that comes included?
All and all, i think it may be an option for the user to save on bandwidth etc, or if you really have no intention in creating stand alone applications in something like Java, VC, for web integration.
