-
Notifications
You must be signed in to change notification settings - Fork 6
Knowledge Base
Welcome to PHPBrowserBox Knowledge Base.
- NSSM, the Non-Sucking Service Manager - https://nssm.cc/
- Inno Setup, create app installer for Windows - https://en.wikipedia.org/wiki/Inno_Setup
- PHPMailer, send emails without smtp server - https://github.com/PHPMailer/PHPMailer
- ResourceHacker, edit icon embedded in exe - http://www.angusj.com/resourcehacker/
You can load custom php extensions, thus you can use many of the available php encoders such as:
- Free
- ColdevProLayer - supports PHP 5.4/5.5/5.6/7.0/7.1/7.2/7.3/8.02. All downloads including extensions for other PHP versions are available here.
- PHTML Encoder - standard version is free.
- Commercial
- Ion Cube
- Zend Guard
- Source Guardian
- Nu-Coder
- CodeLock - a cheap one
PHPBrowserBox doesn't provide a single executable file, but that shouldn't be a concern. Most of the software is distributed in a form of an installer and we recommend to go this way. Try one of these to create an installer for your application:
- Squirrel Windows - An installation and update framework (auto updater) for Windows desktop apps
- Inno Setup + Inno Script Studio (see also ISTool).
- NSIS installer + HM NSIS Edit.
Yes. PHPBrowserBox is released under the BSD 3-clause license that is almost non-restrictive. The only requirements are that the contents of the license.txt file is distributed along with your application in a plain readable form and that you mention in your product documentation that it uses the PHPBrowserBox framework.
Other third party libraries that PHPBrowserBox includes also use non-restrictive licenses that allow for commercial use:
- PHP uses the PHP License
PHPBrowserBox supports url rewriting via mod_rewrite apache module. All the php support packages support this by default.
PHP Desktop - 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.
ExeOutput (commercial) - supports IE and Chrome. This project wasn't updated since a year and the latest version available embeds and old version of Chrome (21.x). It embeds PHP using PHP API. PHP scripts are embedded in exe and may optionally be encoded using bcompiler (up to PHP 5.3 only). It does not serve webpages through CGI/webserver like PHPBrowserBox does, so memory leaks may be an issue. Embedding PHP interpreter through PHP API has disadvantages, some features work differently. There may be issues with uploads, output buffering, includes, paths and others. There are issues with running more than one php script simultaneously. Some php extensions may not work.
TideSDK (beta) - embeds the Webkit engine. No webserver is running, embedding is done using PHP API. PHP is embedded on a webpage similarly to a javascript language, so it can interact with DOM. The downside of that is that it requires you to program in a certain way. Most probably you won't be able to reuse existing scripts. Frameworks like Laravel or Zend Framework won't work. This project was abandoned, the authors are working on a successor called "TideKit".
ZZEE PHPExe and ZZEE PHP GUI - both embed Internet Explorer engine.
Titanium Desktop for PHP - embeds the Webkit engine. This project is similar to TideSDK, though it it is not developed anymore since about 2-3 years.
Wapache - embeds Apache 2 webserver and uses Internet Explorer engine.
PhpDock - not developed anymore, last release was 3 years ago. Uses Internet Explorer engine.
Nightrain - supported on many platforms (Win, Mac, Linux), but doesn't seem to provide a stable infrastructure. It embeds a different browser on different platforms (IE on Win, Webkit on Mac/Linux). Uses a php built-in single threaded web server that is not intended for production. There are many other issues like for example you can't hide debug console when running app on Windows.
See a list of PHP to EXE compilers/converters in this stackoverflow question: "Convert a PHP script into a stand-alone windows executable".
Node-webkit - does not support PHP, but still worth mentioning. You can write native apps in HTML and Javascript with node-webkit. It also lets you call Node.js modules directly from the DOM.
PHP-Webkit - The goal of php-webkit is to be able to package a PHP app within a NW.js project without needing the user to install and set up PHP on their system or connect to a remote PHP codebase.
PHP-GTK - a set of language bindings for PHP which allow GTK+ GUI applications to be written in PHP. PHP-GTK provides an object-oriented interface to GTK+ classes and functions.
wxPHP - a PHP extension that wraps the wxWidgets library, which allows to write multi-platform desktop applications that make use of the native graphical components available to the different platforms.
WinBinder - low-level Windows API bindings for PHP.
PHP-Qt - an extension for PHP5 that aims to write software with the Qt toolkit (a cross-platform application framework).