嗨,欢迎来到这个特别的教程。在这里,我将向您展示如何在PHP Desktop的帮助下使用PHP,CSS,HTML和JavaScript创建基于Web的桌面应用程序 。实际上,PHP Desktop是一个简单易用的解决方案,可用于创建功能强大且复杂的桌面应用程序。
什么是PHP桌面?
根据官方定义,
PHP Desktop是Czarek Tomczak在2012年创建的一个开源项目,旨在提供一种使用Web技术(例如PHP,HTML5,JavaScript和SQLite)开发本机桌面GUI应用程序的方法。
提醒您,创建Web应用程序时惯用的开发工作流程保持不变。将现有网站转换为桌面应用程序的步骤基本上是复制和粘贴的问题。
PHPDesktop是一个通用容器,只会吞噬您的项目。这样,您可以轻松地将现有网站转换为桌面应用程序,而无需进行任何修改。当您下载 PHP Desktop时,将具有一些文件和文件夹集。其中,您将有一个名为的文件夹,您将www
在其中粘贴整个应用程序。
对于那些使用过WampServer,Xamp或EasyPhp的用户来说,理解这一概念将不是问题。使用这些本地服务器时,通常将项目创建到名为www,htdocs或 的特定文件夹中localweb
。它从一台服务器到另一台服务器有所不同,但是概念保持不变。该特定文件夹可帮助您的网络服务器知道从何处运行您的应用程序(网站)。
PHP Desktop的工作方式相同。不同之处在于,PHP桌面不需要任何特定的安装。它是所有这些本地服务器具有的多合一便携式集合,它可以完成WampServer或Xamp以及同一家族中的其他服务器所能做的一切。
PHP Desktop附带了一个.exe
文件。每当您运行时.exe
,它将进入该www
文件夹并运行您的索引文件。我将在本教程的后面部分解释这个过程。
一些故事
回顾2005年,我记得曾经有人要求我提供商店管理应用程序。原理很简单,经理应该能够添加新库存和所有销售记录。最后,所有者应能够获得每天的干净报告,并在可能的情况下可以选择日期或期限。
我告诉客户我可以做到,但是它将基于Web,因此它将使用他们的浏览器来工作。即使我知道他们不了解有什么不同,这也使我有必要尝试向他们明确说明。幸运的是,客户以这种方式接受了它。
我使用EasyPhp制作了该应用程序。因此,要运行该应用程序,我必须在客户端的PC上安装EasyPhp。你可以告诉我oh yeah there is no problem in that
??。确实,似乎没有问题,但是这样的系统/方法遇到很多问题,例如:
在应用程序运行之前,EasyPhp必须打开,否则它们将收到404错误。
我只需要安装几个EasyPhp及其所有模块。
每当EasyPhp拒绝启动时,他们都必须给我打电话
如果有人错误地卸载EasyPhp并认为它是一个奇怪的软件,则整个应用程序将保留所有记录。Pffff。
我的数据库可以轻松访问。
任何使用我的URL的人都可以入侵我的应用程序,因为它们是可见的。
如果他们在另一个商店中需要相同的应用程序,那么我将不得不自己在那个商店中进行相同的处理,因为他们无法自己安装它。
等等。
绝对不是完美的解决方案。即使我没有任何问题,我也不能认为这是一个好的解决方案。我真幸运。在那之后,我以另外两种方式做过同样的事情,但是直到遇到PHP桌面我才对我的工作感到不满意。
我想您可以理解我们在使用PHP的桌面应用程序时可能遇到的真正问题。我知道他们一定是个办法。否则,我在PHP中的技能只会用于网站。
PHP Desktop可以减少(如果不能解决)所有这些问题,并提供了软件开发经验的新视野:
无需再次将所有模块全部嵌入,仅需将其嵌入。
无需安装任何Web服务器,一切都已嵌入
无需担心浏览器兼容性,因为PHP Desktop带有嵌入式浏览器
该浏览器非常轻巧,没有所有无聊的工具,例如地址栏,收藏夹栏,历史记录栏等。毕竟,我们将不需要它们。
您可以将整个应用程序制作为
.exe
文件并将其发送给客户,以便他们自己安装PHP Desktop也可以充当纯HTML5 / JS应用程序的打包程序
没有内存泄漏
您可以将其用于Perl,Ruby和Python
等等。
不妙吗?
我们想要什么?
基本上,任何PHP程序员都希望创建任何桌面应用程序。创建一个可执行的(.exe
)应用程序,他可以轻松共享或发送给他的客户。任何客户端都可以简单地按照安装向导安装应用程序,而无需程序员的任何努力或需求。
不幸的是,如果您真的很喜欢PHP编程,那么现在应该知道这实际上是不可能的。由于PHP是一种解释型编程语言,因此您无法将项目文件编译为单个可执行文件(.exe
),这就是最大的问题所在。
大多数专门用于桌面应用程序的编程语言(例如Java)都有一些库,这些库提供了一些元素集(按钮,菜单,颜色,形状等)来帮助创建软件界面。实际上,PHP没有这种东西,PHP完全是一种脚本语言。人们试图创建一些扩展(例如PHP-GTK)来为语言提供这种功能,但是问题仍然没有完全解决。
此外,PHP可以与HTML和JavaScript结合使用。而且我们知道可以使用CSS设置HTML标记的样式……越来越好。我们无法想象CSS在设计方面的局限性。因此,这就是PHP桌面发挥其力量的地方。
它是如何工作的?
PHP Desktop利用大多数Web技术来帮助PHP实现我们的目标。PHP Desktop本身是一种可以将您自己嵌入其中的软件。因此,当您安装PHP Desktop时,现在将自己的应用程序放入PHP Desktop的文件夹中。当您启动PHP Desktop时,它将去读取/解析您的应用程序以显示/运行它。
PHP Desktop嵌入了应用程序在运行之前可能需要的所有服务。主要元素是Web服务器(猫鼬),PHP服务器和数据库引擎(Sqlite)。为了提供通用接口,它嵌入了浏览器(实际上是Chrome或Internet Explorer)。现在,浏览器可以帮助我们解释JavaScript,HTML和CSS。
因此,在使用前无需安装任何其他服务器或解析器。
使用PHP创建您的第一个桌面应用程序
使用PHP创建桌面应用程序非常简单。
下载PHP桌面(使用Chrome或Internet Explorer)
创建一个新文件夹并命名
MyApp
解压缩PHP Desktop Inside的内容
您的文件夹中应该有以下内容MyApp
:
我下载了一个嵌入式Chome。无论您下载了哪个文件,最重要的是突出显示的文件,它是一个可执行文件(.exe
)。
双击该文件以运行它
您应该得到这样的内容:
- 发生了什么?
PHP Desktop非常聪明。当您单击启动器时,它会进入一个特殊文件夹以查找任何可用的应用程序,并且该特殊文件夹不过是www
文件夹。继续打开www
文件夹,您应该会看到以下内容:
惊讶!这些文件是我们单击启动器时列出的PHP桌面。
注意:这些文件是.php文件。
单击任何一个。您应该看到其内容。
这些文件是示例文件,可以帮助您了解PHP Desktop可以执行这些文件正在执行的所有操作。其中,您具有Cookie,环境变量,表单,iframe,javascript等功能。这意味着您的PHP应用程序几乎可以执行所有操作。
-为什么会提示两个窗口,它们分别是什么?
默认情况下,PHP Desktop会提示两个窗口。第一个(更大)是chrome / explorer。这是您的应用程序所在的位置。用户将通过该窗口与之交互。您可以根据需要进行更改。
第二个窗口(黑色和黑色的控制台)是调试界面(日志控制台)。它可以帮助您查看在运行应用程序时是否发生任何错误,这在开发阶段非常有用。
-另一件事
您应该知道,在生产中我们将不需要该黑色控制台,并且可能还需要调整主窗口的大小等。这些是设置。
PHP Desktop带有一个名为的特殊文件settings.json
。此文件将帮助我们配置PHP Desktop的某些行为。
因此,例如,如果我们不希望PHP Desktop提示日志控制台,则可以settings.json
使用任何文本编辑器打开文件并找到以下文件:
"debugging": {"show_console": true,"subprocess_show_console": false,"log_level": "DEBUG4","log_file": "debug.log"}
然后show_console
像这样将false 的值更改为false:
"debugging": {"show_console": false,"subprocess_show_console": false,"log_level": "DEBUG4","log_file": "debug.log"}
然后再次运行PHP Desktop。pfff走了!
-现在,让我们添加自己的应用程序
进入www
文件夹中的MyApp
文件夹,然后删除其中的所有文件。
创建一个简单的文件,并index.php
用以下内容命名:
<html><head> <title>MyApp</title></head><body> <h1>PHP Desktop is awesome</h1> <div style="background-color:blue; color:white; padding:2em; font-size:3em"> <?= "And PHP agrees!" ?> </div></body></html>
现在将index.php
文件移到www
(如果未在其中创建www
)文件夹中,然后启动PHP Desktop。
您应该得到这样的内容:
您会看到PHP桌面已将您识别index.php
为第一个启动文件。那是Mongoose服务器(嵌入式Web服务器)的工作。另外,我们的HTML和CSS代码已解析,PHP代码也已解析。因此,您很高兴开始尝试其他代码。
注意:将 Mongoose视为Apache服务器
注意:我们的标题标签中的标题未显示。我们的应用程序窗口的标题应在以下对象的settings.json中设置:
"main_window": { "title": "PHP Desktop Chrome", "icon": "", "default_size": [1024, 768], "minimum_size": [800, 600], "maximum_size": [0, 0], "disable_maximize_button": false, "center_on_screen": true, "start_maximized": false, "start_fullscreen": false }
您可以看到该对象可以帮助您影响应用程序的窗口。
所以现在怎么办?
是的,您已经准备好应用程序了吗?您可以将文件夹MyApp
放在计算机中的任何位置。每当您要启动它时,只需单击启动器,或为其创建快捷方式。
Bahh,那不是我们想要的。我们需要一个可执行文件,可以发送给客户端,然后他可以自己安装应用程序。
当然是。我忘记了大声笑。
为了做到这一点,我们将需要另一个名为Inno Steup的特殊小软件。
那又做什么?
我们仅要求Inno Setup提取文件夹中的内容MyApp
并将其转换为自安装包。最后,我们将获得一个简单的setup.exe
文件,可以将其发送到客户端进行安装。
为此,请按照以下步骤操作:
安装它
如果出现这样的情况,请选择“创建一个新的空脚本文件”
现在去
File > New
该向导将出现:
不要检查“创建新的空脚本文件”
点击
Next
该向导将出现:
在这里,我们需要为您的应用程序进行一些设置:
应用名称:
MyApp
应用版本:
0.0.1
应用程序发布者:(
iT Tutors Age Ltd
您的公司或您的名字)申请网站:(
www.phpocean.com
或您的网站)现在
Next
再次点击该向导将出现:
在这里,我们需要精确确定将文件夹安装在用户计算机中后将包含我们的应用程序的名称。当您安装应用程序时,它通常位于
C:\Program Files
或中C:\Program Files (x86)
。因此,默认情况下,我们将保留“应用程序目标”文件夹。现在让我们将Application文件夹名称更改为
MyApp
点击
Next
该向导将出现:
这是发生严重事情的地方。第一个应用程序的主要可执行文件名称。在向导上,我们有
MyProg.exe
(圈出的区域)。这是Inno Setup中的默认测试文件。我们需要更改它,否则当我们启动应用程序时,它将启动Inno Setup的测试应用程序。因此,单击
Browse
,将您的文件夹浏览到我们的MyApp
文件夹,然后双击phpdesktop-chrome.exe
。接下来是带有其他应用程序文件标签的白色小区域。这部分也非常重要,而且管理起来也非常微妙。首先,它意味着:
如果除了顶部添加的可执行文件之外,还有其他组成应用程序的文件,请在此处全部添加。
因此,通常您必须将文件
MyApp
夹中的所有phpdesktop-chrome.exe
文件一一带到这里,这是一件困难而又缓慢的事情。我个人通常会进入我的文件夹并突出显示所有文件,但
phpdesktop-chrome.exe
随后将所有文件 拖放到小区域中。简单快捷。因此,最后,您应该具有以下内容:
然后
Next
再次点击该向导将出现:
这是不言自明的。单击Windows
start
菜单后,将单击该名称以启动应用程序。您还可以激活其他选项。Next
再点击一次该向导将出现:
这些是您的应用程序的文档文件:许可证文件,安装之前的说明文件和安装结束时的说明文件。
虽然这不是必须的,但是如果您想要一个严肃的软件,则可以添加它。要建立三种不同的文本文件(
license.txt
,before-install.txt
,和end-install.txt
您的计算机)的地方。然后浏览每个并将其添加到相应的字段。无论您在其中放置什么内容,用户在安装软件时都会看到它-试试看。
然后点击
next
该向导将出现:
这些是您为软件安装向导提供的客户端语言。因此,当他们要安装它时,他们可以选择安装向导应该显示说明的语言。
您可以选择法语和英语或更多。
Next
再点击一次该向导将出现:
自定义编译器输出文件夹是您希望Inno Setup在其末尾放置Finale Executable文件的位置。因此,浏览并在您的计算机中选择一个文件夹(我选择了我的桌面文件夹)。
编译器输出基本文件名是您希望最终压缩可执行文件具有的名称。您可以保留
setup
或将其更改为MyAppSetup
与我一样。自定义安装图标是您的可执行文件的图标。该文件必须是
.ico
文件。现在,就离开它。并留下密码领域也然后
click on next
再next again
然后finish
之后,Inno安装程序将提示以下内容:
只需点击 Yes
它将再次询问您是否要将生成的代码保存在某处以备将来使用。说,Yes
如果要保留它,请选择将其保存在计算机上的位置并保存。如果您不想要,只需单击no
。
然后,Inno Setup将开始将我们的文件编译成可执行文件。
确保在到达此处之前关闭PHP桌面,否则会提示错误,指出在其他地方使用了元素。
如果一切顺利,您应该得到以下信息:
现在进入您要求Inno Setup保存可执行文件的文件夹。就我而言,我选择了我的台式机。
所以,这就是我到达的地方:
我有一个可执行文件MyAppSetup
,当我将鼠标悬停在它上时,我有这个文件:
考虑所有细节。凉!
要安装它,只需双击它,然后按照安装向导的说明进行操作。
样本[ 编辑 ]
人们要求我为他们提供一些使用PHP Desktop完成的实际应用案例。 在此处下载可执行文件的示例[38.9 MB]。
安装完成以访问应用程序后,请使用:用户名:admin-密码:admin
贝娄是我做过的一些应用程序的屏幕截图:
结论
希望您喜欢这个冗长的教程。我不想错过任何东西,因为这很棘手。但是,它们仍然可能是您无法摆脱的。只需在评论部分此处询问即可。
本教程是一个非常简单的过程。使用PHP桌面时,您需要考虑很多方面,例如窗口设置,环境设置,框架的使用,访问计算机文件和硬件等。
评论 (0)