Table of contents:
PHP Desktop is an open source project founded by Czarek Tomczak in 2012 to provide a way for developing native desktop GUI applications using web technologies such as PHP, HTML5, JavaScript and SQLite. Think of it as Electron for PHP. It is a convienient tool for converting PHP web apps and PHP CLI tools to desktop applications with little effort. The development workflow you are used to while creating web applications remains the same, there is no new framework / API to learn. The process of turning an existing website into a desktop application is basically a matter of copying it to the "phpdesktop/www/" directory.
In a certain sense phpdesktop acts as a PHP to EXE compiler. It embeds a web browser, a multi-threaded web server and a PHP interpreter. All embedded into a single application, a portable folder that you can easily distribute to end users by packing it to zip archive or by making an installer for your application. The web server embedded is a custom edition of Mongoose, a web server used by NASA on International Space Station. Supported browsers are Internet Explorer and Google Chrome via open source Chromium. The package with Chrome embedded has no external dependencies, everything is included in phpdesktop binaries and works out of the box on a user's computer.
All popular PHP frameworks are supported, see the PHP frameworks support wiki page for example configurations for CakePHP, CodeIgniter, Laravel, Symfony, Yii and Zend Framework. You can create a standalone executable for distribution with the help of the Inno Setup installer. PHP sources can be protected with the many of the available PHP encoders. PHP Desktop is released under non-restrictive license, thus it is free for commercial use.
It is one of the top goals for PHP Desktop to be stable, to work reliably. PHP Desktop does not suffer from memory leaks. PHP by design was never intended for running long hours/days, as desktop applications usually do. This is not a concern when using PHP Desktop, as it is running an internal web server and serving pages through CGI. So when PHP script execution ends, PHP-CGI process is killed and all memory is always freed.
Lots of other useful information can be found on the Knowledge Base wiki page and on the Issues Tracker for release chrome-99.0 Discussion Forum for release chrome-99.0 Original PHP Desktop Forum for old releases
- Windows
- PHP Desktop v99.0 for Windows release
- PHP Desktop MSIE v1.14 wiki page (deprecated)
- Linux
- PHP Desktop v72.1 for Linux release
- Mac
- No release yet, see the ongoing funding by Czarek Tomczak in Issue #208
There are two ways to be notified about new releases:
- Watch the project with the "Releases only" option checked
- Subscribe to the RSS/Atom feed
- Documentation is on the Wiki Pages. Start with the Knowledge Base, Settings and Chrome settings wiki pages.
- Ask questions and report problems on the Issues Tracker for release chrome-99.0 Discussion Forum for release chrome-99.0 Original PHP Desktop Forum for old releases
- See also this externally maintained tutorial: Create your first Desktop Application with PHP and PHP Desktop