- Saved searches
- Use saved searches to filter your results more quickly
- cztomczak/phpdesktop
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- PHP and HTML5 Learning Trail
- Getting Started
- Tutorials and Articles
- Basic Oracle JET Development
- Common Scenarios for Oracle JET Development
- HTML5 and JavaScript Project Development
- Configuring Your Environment for PHP Development
- Testing and Debugging
- Frameworks
- General PHP Tutorials
- Creating a Database Driven Application With PHP
- Screencasts
- Community-Contributed Docs
- Other Resources
- Developing Applications with NetBeans IDE User’s Guide
- Online Magazine Articles
- The IDE, Databases, and Versioning
- Weblogs
- About
- Community
- Participate
- Get Help
- Download
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Develop desktop GUI applications using PHP, HTML5, JavaScript and SQLite
cztomczak/phpdesktop
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
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 the 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 PHP Desktop Forum.
- Windows
- PHP Desktop v57.0 for Windows release
- PHP Desktop MSIE v1.14 wiki page
- PHP Desktop v72.1 for Linux release
- No release yet, see the ongoing funding in Issue #208
There are two ways to be notified about new releases:
- Documentation is on the Wiki Pages. Start with the Knowledge Base, Settings and Chrome settings wiki pages.
- Ask questions and report problems on the PHP Desktop Forum
- See also this externally maintained tutorial: Create your first Desktop Application with PHP and PHP Desktop
Fundings for new features
Here is a list of ongoing fundings for new features in PHP Desktop:
Feature Funds gathered Issue Status Chrome v100 release for Windows $890 of $2,000 Issue #227 Ongoing funding Initial Mac release $2,000 of $2,000 Issue #208 Work started Below is a list of completed fundings with features already implemented:
Feature Funds gathered Issue Status Initial Linux release $1,500 of $1,500 Issue #221 Done Fundings for other features submitted in the issue tracker and the ones presented on the PHP Desktop Pro wiki page are also possible, just let know Czarek.
If you would like to support PHP Desktop general development efforts by making a donation please click the Donate button below:
PHP Desktop is seeking companies to sponsor further development of the project. There are many proposals for new features submitted in the issue tracker and on wiki pages. Most notable are:
- Monthly releases with latest Chrome
- An automated build system
- Cross-platform support with full functionality on Mac and Linux
- More Javascript and PHP API exposed for accomplishing desktop specific tasks
- Better integration with desktop, taskbar and systray
- HTTPS/SSL support
- Custom window themes
- Running app in background
- SQLite encryption
- Desktop notifications
If your company would like to sponsor PHP Desktop development efforts then please contact Czarek. Long term sponsorships are welcome and Czarek is open to ideas about the project. He would love to spend more time on developing this project, but he can’t afford doing so in his free time.
About
Develop desktop GUI applications using PHP, HTML5, JavaScript and SQLite
PHP and HTML5 Learning Trail
Below are some resources using the NetBeans IDE to develop PHP applications and HTML5 applications. NetBeans IDE support for these technologies is rapidly evolving. Please see the NetBeans for PHP blog and NetBeans WebClient blog for the latest information.
Getting Started
Tutorials and Articles
Basic Oracle JET Development
Common Scenarios for Oracle JET Development
- Strategies for Intermodular Communication
- CRUD Application Development
- Interacting with RESTful Web Services
- Composite Component Architecture
- Oracle JET Mobile Development
- Error Handling and Validation
- CSS3 Flexible Box
- Theming
- Internationalization
HTML5 and JavaScript Project Development
Configuring Your Environment for PHP Development
Testing and Debugging
Frameworks
- Developing a Zend Framework Application With Oracle Database 11g and NetBeans IDE
- TipLite blog: CakePHP Support in NetBeans
- NetBeans for PHP Blog: Using Zend Framework with NetBeans IDE
- My Beloved PHP blog: Netbeans revisited: Code Completion for Code-igniter II
- My Beloved PHP blog: Netbeans: Code Completion for the Kohana Framework
- See also: Symfony and Zend framework support documents in the Screencasts and Community Contributions sections.
General PHP Tutorials
Creating a Database Driven Application With PHP
- Main Page: Creating a Database Driven Application With PHP
- 1a: Creating a MySQL Database
- 1b: Creating Oracle Database Tables
- Part 2: Designing the Application. Reading from the Database
- Part 3: Creating a New Application User
- Part 4: Optimizing the Code
- Part 5: Adding Security. Implementing Application User Logon
- Part 6: Adding a New Wish to the Database
- Part 7: Updating and Deleting Entries In the Database
- Part 8: Making the Application Look Better Using CSS
- Part 9: Deploying the Application on a Remote Web Server
Screencasts
- (YouTube) Backbone.js Meets Java EE in Maven
- Getting Started with Cordova in NetBeans IDE
- Using KnockoutJS in an HTML5 Application
- Getting Started with HTML5 Applications
- Working with CSS Stylesheets in HTML5 Applications
- Testing and Debugging JavaScript in HTML5 Applications
- (YouTube) HTML5, JavaScript & CSS3 in NetBeans IDE
- (YouTube) From Database to HTML5 Backbone.js in 5 Minutes
- Editing PHP 5.4 with NetBeans IDE
- Doctrine 2 Framework Support in NetBeans IDE for PHP
- Support for PHP on Continuous Build Servers
- Generating PHP Documentation With NetBeans IDE (Now uses ApiGen instead of PHPDocumentor.)
- Smarty Framework Support in NetBeans IDE for PHP
- Rename Refactoring and Other Editor Improvements in NetBeans IDE 7.0 for PHP
- Screencast: Zend Framework Support in NetBeans IDE
- PHP Namespace Code Completion
- Building a PHP Demo in Flickr
- Declaring Variables in Comments and Related Code Completion Features
Community-Contributed Docs
Other Resources
Developing Applications with NetBeans IDE User’s Guide
Online Magazine Articles
The IDE, Databases, and Versioning
Weblogs
About
Community
Participate
Get Help
Download
Licensed under the Apache license, version 2.0
Apache, Apache NetBeans, NetBeans, the Apache feather logo and the Apache NetBeans logo are trademarks of The Apache Software Foundation.
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
The Apache NetBeans website conforms to the Apache Software Foundation Privacy Policy