Skip to content

Commit 5f61a01

Browse files
committed
Add build instructions to README.
1 parent ec1f5d2 commit 5f61a01

File tree

1 file changed

+15
-134
lines changed

1 file changed

+15
-134
lines changed

README.md

Lines changed: 15 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -1,135 +1,16 @@
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.
216

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-
[![Donate](https://raw.githubusercontent.com/cztomczak/phpdesktop/master/var/donate.gif)](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

Comments
 (0)