使用PHP和PHP Desktop创建第一个桌面应用程序
标签搜索
PHP

使用PHP和PHP Desktop创建第一个桌面应用程序

iprub
2020-04-10 / 0 评论 / 2,317 阅读 / 正在检测是否收录...

   嗨,欢迎来到这个特别的教程。在这里,我将向您展示如何在PHP Desktop的帮助下使用PHP,CSS,HTML和JavaScript创建基于Web的桌面应用程序 实际上,PHP Desktop是一个简单易用的解决方案,可用于创建功能强大且复杂的桌面应用程序。

什么是PHP桌面?

根据官方定义,

PHP Desktop是Czarek Tomczak在2012年创建的一个开源项目,旨在提供一种使用Web技术(例如PHP,HTML5,JavaScript和SQLite)开发本机桌面GUI应用程序的方法。

-来源:PHP桌面官方页面

提醒您,创建Web应用程序时惯用的开发工作流程保持不变。将现有网站转换为桌面应用程序的步骤基本上是复制和粘贴的问题。

PHPDesktop是一个通用容器,只会吞噬您的项目。这样,您可以轻松地将现有网站转换为桌面应用程序,而无需进行任何修改。当您下载 PHP Desktop时,将具有一些文件和文件夹集。其中,您将有一个名为的文件夹,您将www在其中粘贴整个应用程序。

对于那些使用过WampServer,Xamp或EasyPhp的用户来说,理解这一概念将不是问题。使用这些本地服务器时,通常将项目创建到名为wwwhtdocs或 的特定文件夹中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桌面文件夹

PHP Desktop嵌入了应用程序在运行之前可能需要的所有服务。主要元素是Web服务器(猫鼬),PHP服务器和数据库引擎(Sqlite)。为了提供通用接口,它嵌入了浏览器(实际上是Chrome或Internet Explorer)。现在,浏览器可以帮助我们解释JavaScript,HTML和CSS。

因此,在使用前无需安装任何其他服务器或解析器。PHP桌面

使用PHP创建您的第一个桌面应用程序

使用PHP创建桌面应用程序非常简单。

  1. 下载PHP桌面(使用Chrome或Internet Explorer)

  2. 创建一个新文件夹并命名 MyApp

  3. 解压缩PHP Desktop Inside的内容

您的文件夹中应该有以下内容MyApp

PHP桌面

我下载了一个嵌入式Chome。无论您下载了哪个文件,最重要的是突出显示的文件,它是一个可执行文件(.exe)。

  1. 双击该文件以运行它

您应该得到这样的内容:

PHP桌面

- 发生了什么?

PHP Desktop非常聪明。当您单击启动器时,它会进入一个特殊文件夹以查找任何可用的应用程序,并且该特殊文件夹不过是www文件夹。继续打开www文件夹,您应该会看到以下内容:

PHP桌面

惊讶!这些文件是我们单击启动器时列出的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桌面

您会看到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文件,可以将其发送到客户端进行安装。

为此,请按照以下步骤操作:

  1. 下载Inno设置

  2. 安装它

    如果出现这样的情况,请选择“创建一个新的空脚本文件”PHP桌面

  3. 现在去 File > New

    该向导将出现:PHP桌面

    不要检查“创建新的空脚本文件”

  4. 点击 Next

    该向导将出现:PHP桌面

    在这里,我们需要为您的应用程序进行一些设置:

    应用名称: MyApp

    应用版本: 0.0.1

    应用程序发布者:(iT Tutors Age Ltd您的公司或您的名字)

    申请网站:(www.phpocean.com或您的网站)

  5. 现在Next再次点击

    该向导将出现:PHP桌面

    在这里,我们需要精确确定将文件夹安装在用户计算机中后将包含我们的应用程序的名称。当您安装应用程序时,它通常位于C:\Program Files或中C:\Program Files (x86)因此,默认情况下,我们将保留“应用程序目标”文件夹。

    现在让我们将Application文件夹名称更改为 MyApp

  6. 点击 Next

    该向导将出现:PHP桌面

    这是发生严重事情的地方。第一个应用程序的主要可执行文件名称在向导上,我们有MyProg.exe(圈出的区域)。这是Inno Setup中的默认测试文件。我们需要更改它,否则当我们启动应用程序时,它将启动Inno Setup的测试应用程序。

    因此,单击Browse,将您的文件夹浏览到我们的MyApp文件夹,然后双击phpdesktop-chrome.exe

    接下来是带有其他应用程序文件标签的白色小区域这部分也非常重要,而且管理起来也非常微妙。首先,它意味着:

    如果除了顶部添加可执行文件之外,还有其他组成应用程序的文件,请在此处全部添加。

    因此,通常您必须将文件MyApp夹中的所有phpdesktop-chrome.exe文件一一带到这里,这是一件困难而又缓慢的事情。

    我个人通常会进入我的文件夹并突出显示所有文件,但phpdesktop-chrome.exe随后将所有文件 拖放到小区域中。简单快捷。

    因此,最后,您应该具有以下内容:

    PHP桌面

  7. 然后Next再次点击

    该向导将出现:PHP桌面

    这是不言自明的。单击Windows start菜单后,将单击该名称以启动应用程序您还可以激活其他选项。

  8. Next点击一次

    该向导将出现:PHP桌面

    这些是您的应用程序的文档文件:许可证文件,安装之前的说明文件和安装结束时的说明文件。

    虽然这不是必须的,但是如果您想要一个严肃的软件,则可以添加它。要建立三种不同的文本文件(license.txtbefore-install.txt,和end-install.txt您的计算机)的地方。然后浏览每个并将其添加到相应的字段。

    无论您在其中放置什么内容,用户在安装软件时都会看到它-试试看。

  9. 然后点击 next

    该向导将出现:PHP桌面

    这些是您为软件安装向导提供的客户端语言。因此,当他们要安装它时,他们可以选择安装向导应该显示说明的语言。

    您可以选择法语和英语或更多。

  10. Next点击一次

    该向导将出现:PHP桌面

    自定义编译器输出文件夹是您希望Inno Setup在其末尾放置Finale Executable文件的位置。因此,浏览并在您的计算机中选择一个文件夹(我选择了我的桌面文件夹)。

    编译器输出基本文件名是您希望最终压缩可执行文件具有的名称。您可以保留 setup或将其更改为MyAppSetup与我一样。

    自定义安装图标是您的可执行文件的图标。该文件必须是.ico文件。现在,就离开它。

    并留下密码领域也然后click on nextnext again然后finish

之后,Inno安装程序将提示以下内容:PHP桌面

只需点击 Yes

它将再次询问您是否要将生成的代码保存在某处以备将来使用。说,Yes如果要保留它,请选择将其保存在计算机上的位置并保存。如果您不想要,只需单击no

然后,Inno Setup将开始将我们的文件编译成可执行文件

确保在到达此处之前关闭PHP桌面,否则会提示错误,指出在其他地方使用了元素。

如果一切顺利,您应该得到以下信息:

PHP桌面

现在进入您要求Inno Setup保存可执行文件的文件夹就我而言,我选择了我的台式机。

所以,这就是我到达的地方:

PHP桌面

我有一个可执行文件MyAppSetup,当我将鼠标悬停在它上时,我有这个文件:

PHP桌面

考虑所有细节。凉!

要安装它,只需双击它,然后按照安装向导的说明进行操作。

样本[ 编辑 ]

人们要求我为他们提供一些使用PHP Desktop完成的实际应用案例。 在此处下载可执行文件的示例[38.9 MB]。

安装完成以访问应用程序后,请使用:用户名:admin-密码:admin

贝娄是我做过的一些应用程序的屏幕截图:

科科姆佩


展示案例

结论

希望您喜欢这个冗长的教程。我不想错过任何东西,因为这很棘手。但是,它们仍然可能是您无法摆脱的。只需在评论部分此处询问即可。

本教程是一个非常简单的过程。使用PHP桌面时,您需要考虑很多方面,例如窗口设置,环境设置,框架的使用,访问计算机文件和硬件等。


0

评论 (0)

取消