PHP Desktop Applications

I’ve tried a few options for running PHP in a desktop environment including WinBinder and PHP-GTK. GTK is probably the best choice, and it’s really a great library; but when it comes to deploying an application, it leaves something to be desired. What you can do is put PHP in a folder with the application and create a batch file to run your script. Then, you can bundle the whole thing in a self-extracting zip with WinZip. This can work, but it’s really not an elegant solution.

The other downside to GTK is that you cannot use web development techniques in your applications, which makes it a little limiting for people who are used to working on a server. The solution to all of this is a project I accidentally found on Stack Overflow called PHP Desktop. This is just what I’ve been looking for: a compact web server with a browser frontend which can be bundled into a Windows executable. Somebody finally got it right.

The server is Mongoose and the browser engine is IE10. The JavaScript execution seems fast, and you can use your favorite JS library\framework. You can really use all your normal web dev skills with it, but so far, I’ve found that the following does not work:

  1. HTML5 elements such as header, footer, article, etc. They show up fine, but you can’t select them with CSS
  2. HTML5 form features
  3. CSS attribute selectors
  4. I tried to set up an infinite loop in php and it alternated between blowing up and just not working

I’m almost done building an application in this runtime and I’m going to try bundling it up for install with iexpress. More details to come.

Related Posts

Customize Consent Preferences
We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.
The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site.
We also use third-party cookies that help us analyze how you use this website, store your preferences, and provide the content and advertisements that are relevant to you. These cookies will only be stored in your browser with your prior consent.
You can choose to enable or disable some or all of these cookies but disabling some of them may affect your browsing experience.
Always Active
Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.