|
1 | | -# PHP Desktop |
| 1 | +# Chrome 130 branch |
| 2 | + |
| 3 | +## Build on Windows |
| 4 | + |
| 5 | +1. Install Visual Studio 2022 Community Edition. |
| 6 | +1. During install install SDK 10.0.22621 (default at the time of this writing). |
| 7 | +1. Download phpdesktop sources by cloning repository. |
| 8 | +1. Install latest CMake from http://www.cmake.org/ . |
| 9 | +1. Download CEF 130.1.15+g34b05bb Standard Distribution from https://cef-builds.spotifycdn.com/index.html . |
| 10 | +1. Build CEF binary according to instructions from CMakeLists.txt file, but add the `-DUSE_SANDBOX=Off` flag to cmake command. |
| 11 | +1. Open cef.sln file, change to Release configuration and build. |
| 12 | +1. Go to tests/cefclient/Release/ and run cefclient sample application that was built to see if it runs fine. |
| 13 | +1. Create "phpdesktop/Release/" directory and copy files and subdirectories from the "cef_binary/Release/" and "cef_binary/Resources/" directories. Exclude ".lib" files. |
| 14 | +1. Copy "cef_binary/build/libcef_dll_wrapper/Release/libcef_dll_wrapper.lib" and "cef_binary/Release/libcef.lib" to the "phpdesktop/lib/Release/" directory. |
| 15 | +1. Open "phpdesktop/phpdesktop-chrome.sln" file and build solution. |
2 | 16 |
|
3 | | - |
4 | | -Table of contents: |
5 | | -* [Introduction](#introduction) |
6 | | -* [Sponsors](#sponsors) |
7 | | -* [Fundings for new features](#fundings-for-new-features) |
8 | | -* [Downloads](#downloads) |
9 | | -* [Support](#support) |
10 | | -* [Support development](#support-development) |
11 | | - |
12 | | - |
13 | | -## Introduction |
14 | | - |
15 | | -PHP Desktop is an open source project founded by [Czarek Tomczak](https://drive.google.com/file/d/17xmoT5Z_zTHkVclqPzrs2aAV64Uiu7fh/view) |
16 | | -in 2012 to provide a way for developing native desktop GUI applications |
17 | | -using web technologies such as PHP, HTML5, JavaScript and SQLite. PHP Desktop |
18 | | -is basically what [Electron](https://electronjs.org/) is, but with PHP support |
19 | | -added. You create client interface in JS/HTML5 and use PHP for back-end stuff |
20 | | -such as interacting with OS, filesystem and processing of data. So it works |
21 | | -similarly to your web application, but can run and act like a native desktop |
22 | | -application. The development workflow you are used to while creating web |
23 | | -applications remains the same. There is no new API/framework to learn. The |
24 | | -process of turning an existing website into a desktop application is basically |
25 | | -a matter of copying it to the "phpdesktop/www/" directory. |
26 | | - |
27 | | -PHP Desktop is not meant as a professional environment for developing desktop |
28 | | -applications like the ones you can see developed in C++ programming language. |
29 | | -PHP Desktop is more of a GUI tool for converting your PHP web apps and PHP CLI |
30 | | -tools to desktop applications with little effort. If you have a big PHP code base |
31 | | -and want to reuse it on desktop then it makes sense to use PHP Desktop. If you |
32 | | -are more efficient in PHP programming than in JS programming then it |
33 | | -makes sense to use PHP Desktop instead of Electron. If you have PHP CLI tools |
34 | | -that you would like to convert to GUI tools then it makes sense to use PHP Desktop |
35 | | -than to rewrite everything in some other language or specific framework APIs. |
36 | | -With PHP Desktop you can accomplish great things in no time and painlessly. |
37 | | -But be aware that desktop integration APIs in PHP Desktop can be limited. This project |
38 | | -is not supported by big companies like Electron is and thus its development resources |
39 | | -are limited. Before creating a desktop application I suggest that you go through |
40 | | -documentation and see if the desktop integration API you need is available in PHP Desktop. |
41 | | -PHP Desktop doesn't provide many of the built-in desktop integration functionality that |
42 | | -you can find in Electron, but you can still accomplish many of these tasks by |
43 | | -integrating external tools/libraries with PHP Desktop. |
44 | | - |
45 | | -In a certain sense phpdesktop acts as a PHP to EXE compiler. It embeds a web browser, |
46 | | -a multi-threaded web server and a PHP interpreter, all embedded into a single application, |
47 | | -a single folder, a portable zip that you can easily distribute to end users (or optionally |
48 | | -make it an installer). The web server embedded is a custom edition of |
49 | | -[Mongoose](https://en.wikipedia.org/wiki/Mongoose_(web_server)) (the MIT-licensed version), |
50 | | -a web server used by NASA on International Space Station. |
51 | | -Supported browsers are Internet Explorer and Google Chrome. |
52 | | -The package with Chrome embedded has no external dependencies, everything is included in |
53 | | -the phpdesktop binaries and works out of the box on a user's computer. PHP Desktop actually |
54 | | -embeds Chromium browser (using [Chromium Embedded Framework](https://bitbucket.org/chromiumembedded/cef) |
55 | | -to be specific) which is open source software on which Google Chrome is based, but for |
56 | | -the sake of simplicity we just call it Chrome or Google Chrome here. |
57 | | - |
58 | | -All popular PHP frameworks are supported, see the [PHP frameworks support](../../wiki/PHP-frameworks-support) |
59 | | -wiki page for example configurations for CakePHP, CodeIgniter, Laravel, Symfony, Yii |
60 | | -and Zend Framework. You can create a standalone executable for distribution with the |
61 | | -help of the [Inno Setup installer](../../wiki/Knowledge-Base#application-installer). |
62 | | -PHP sources can be protected with the many of the available |
63 | | -[PHP encoders](../../wiki/Knowledge-Base#how-do-i-protect-php-sources-in-the-www-directory). |
64 | | -PHP Desktop is released under non-restrictive license, thus it is |
65 | | -[free for commercial use](../../wiki/Knowledge-Base#can-i-use-php-desktop-in-a-commercial-closed-sourced-project). |
66 | | - |
67 | | -It is one of the top goals for PHP Desktop to be stable, to work reliably. PHP Desktop does |
68 | | -not suffer from memory leaks. PHP by design was never intended for running long hours/days, |
69 | | -as desktop applications usually do. This is not a concern when using PHP Desktop, as it is |
70 | | -running an internal web server and serving pages through CGI. So when PHP script ends |
71 | | -execution PHP-CGI process is killed and all memory is always freed. |
72 | | - |
73 | | -Lots of other useful information can be found on the [Knowledge Base](../../wiki/Knowledge-Base) |
74 | | -wiki page and on the [PHP Desktop Forum](https://groups.google.com/d/forum/phpdesktop). |
75 | | - |
76 | | - |
77 | | -## Sponsors |
78 | | - |
79 | | -The PHP Desktop project is seeking companies to help make the project greater than it is today. |
80 | | -There is a lot that can be done for the project such as monthly releases with latest Chromium |
81 | | -version, an automated build system, cross-platform support with full functionality on Mac and Linux, |
82 | | -more Javascript and PHP API exposed for accomplishing desktop specific tasks, better integration |
83 | | -with desktop / taskbar / systray, HTTPS/SSL support, custom window themes, running app in background, |
84 | | -sqlite encryption, desktop notifications, and the many more proposals for new features submitted |
85 | | -in the issue tracker. If your company would like to sponsor PHP Desktop development efforts then please |
86 | | -contact [Czarek](https://drive.google.com/file/d/17xmoT5Z_zTHkVclqPzrs2aAV64Uiu7fh/view). Long term |
87 | | -sponsorships are welcome and Czarek is open to ideas about the project. He would love to spend more |
88 | | -time on developing this project, but he can't afford doing so in his free time. |
89 | | - |
90 | | - |
91 | | -## Fundings for new features |
92 | | - |
93 | | -Here is a list of ongoing fundings for the new features in PHP Desktop Chrome: |
94 | | - |
95 | | -Feature | Funds gathered | Issue |
96 | | ---- | --- | --- |
97 | | -Chrome v70 release for Windows | $0 of $2,000 | [Issue #227](https://github.com/cztomczak/phpdesktop/issues/227) |
98 | | -Initial Mac release | $150 of $2,000 | [Issue #208](https://github.com/cztomczak/phpdesktop/issues/208) |
99 | | -Initial Linux release | $1,500 of $1,500 | [Issue #221](https://github.com/cztomczak/phpdesktop/issues/221) |
100 | | - |
101 | | -Fundings for other features submitted in the issue tracker or the ones presented on the |
102 | | -[PHP Desktop Pro](https://github.com/cztomczak/phpdesktop/wiki/PHP-Desktop-Pro) |
103 | | -wiki page are also possible, just let know Czarek. |
104 | | - |
105 | | - |
106 | | -## Downloads |
107 | | - |
108 | | - * PHP Desktop Chrome for Windows - go to the [Download Chrome](../../wiki/Download-Chrome) wiki page. |
109 | | - * PHP Desktop for Linux - see the [linux-v70.0](https://github.com/cztomczak/phpdesktop/releases/tag/linux-v70.0) release |
110 | | - * PHP Desktop MSIE (Internet Explorer) - go to the [Download MSIE](../../wiki/Download-MSIE) wiki page. |
111 | | - |
112 | | -__New releases RSS/Atom feed__ |
113 | | -To be notified of new releases subscribe to this [Atom feed](https://github.com/cztomczak/phpdesktop/releases.atom). |
114 | | - |
115 | | - |
116 | | -## Support |
117 | | - |
118 | | -* Documentation is on the [Wiki Pages](../../wiki). Start with the [Knowledge Base](../../wiki/Knowledge-Base), |
119 | | - [Settings](../../wiki/Settings) and [Chrome settings](../../wiki/Chrome-settings) wiki pages. |
120 | | -* Ask questions and report problems on the [PHP Desktop Forum](https://groups.google.com/d/forum/phpdesktop) |
121 | | -* Please do not create issues in the Issue Tracker |
122 | | -* See also this tutorial (externally maintained): [Create your first Desktop Application with PHP and PHP Desktop](http://phpocean.com/tutorials/design-and-illustration/create-your-first-desktop-application-with-php-and-php-desktop/4) |
123 | | - |
124 | | - |
125 | | -## Support development |
126 | | - |
127 | | -If you would like to support PHP Desktop general development efforts by making a donation please click the Donate button below: |
128 | | - |
129 | | -[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JQSTPDRRM8AQ8) |
130 | | - |
131 | | -If you would like to see some feature implemented you can make a comment about that when making a donation. It will give it a higher priority. |
132 | | - |
133 | | -For sponsorship opportunities please contact [Czarek](https://drive.google.com/file/d/17xmoT5Z_zTHkVclqPzrs2aAV64Uiu7fh/view). |
134 | | - |
135 | | -Complete github statistics are available in this topic on the Forum: [[ANN] Call for sponsors](https://groups.google.com/d/topic/phpdesktop/1T7jictpJ5M/discussion). |
0 commit comments