php作为跨平台桌面应用程序开发语言?亵渎!尽管如此,这是可能的。
几年前,那些有兴趣将PHP带到台式机的人都是现在已长期被废弃的GTK PHP。从那以后,新玩家出现了,尽管让我们首先回答“为什么”。
>
钥匙要点
尽管它主要用于Web开发,但PHP仍可用于开发跨平台桌面应用程序。本文讨论了三个主要工具:nightrain,wxphp和tidesdk。
Nightrain是一套预包装的PHP托管先决条件,非常适合基本应用。但是,它具有局限性,包括在Windows上启动命令提示符,该提示符可能会混淆非技术用户,并且无法同时运行多个应用程序而无需更改设置。
>
- > wxphp是包装WXWIDGETS库的PHP扩展名,允许创建多平台桌面应用程序。它提供了更简单的用户体验,应用程序仅是可以双击的文件,但缺少HTML5功能并且具有学习曲线。
>
- tidesdk是一个开源项目,它使用HTML,CSS,JS和其他脚本语言(如PHP)来渲染应用程序。但是,它有几个弊端,包括过时的PHP版本,不同的DOM API,并且需要多个环境为不同平台构建应用程序。
>
- 其他选项,例如PHPDESKTOP,Webinder和PHP GTK,要么过时,Windows-contryustrusive或两者兼而有之,因此它们对多平台解决方案的可行性降低了。
在为桌面开发PHP应用程序时,可能并非总是合理的,因为知道该选项的存在对于某些方案可能很有用。
-
为什么?-
- >为什么有人会为桌面开发跨平台PHP应用程序?为什么不选择可以真正可以将操作系统低级API(例如Adobe Air)绑定到的东西呢?为什么不喜欢过时,过时的东西,但是像爪哇一样可靠?为什么不将其制作为Chrome应用程序,如果您需要本机支持,请使用本机客户端?地狱,如果您想要脚本语言,为什么不和Python一起去呢?一切都在进行,只要我们避免必须将服务器与整个Shebang捆绑在一起,对
>
>我的头顶,我可以想到几个遥远的场景:
- >您需要在简单的语法和良好的结构(即PHP)之间进行良好的中间立场,并且您不愿意学习新语言,例如ActionScript
>您正在与高度计算机文盲的公司一起运行它,而迫使他们为您的公司应用程序使用良好的浏览器的唯一方法是将其嵌入您提供的应用程序中。它仍然是一个网络应用程序,但在无头的Chrome中打开!- >
>您想避免为自己的个人申请支付托管费用,并且想在USB棒上随身携带。您只需将其插入,运行它,然后您的应用就在那里 - 从前使用相同的SQLite DB。如果您需要在线同步,请单击按钮,将整个DB导出发送到Dropbox或某些此类服务,从而确保您实际上即使没有计算机也可以访问您的“ Web应用程序”。
>您不需要低级OS API访问 - 您只想制作基于浏览器的游戏,辅助应用程序,或类似简单的内容。 php对此很好,您已经知道了语言。- >
这些情况看起来可能像抓住稻草,的确,我真的想不出一个真正的,实用的理由,想要做到这一点没有可行的选择。不过,很高兴知道这是可能的。让我们看看如何。
1。 nightrain
Nightrain是一组预包装的PHP托管先决条件,目前由PHP 5.5.x提供动力。这是用Python编写的包装器,它使用PHP的内部服务器托管您的应用程序,从而避免了Apache和nginx并最大程度地减少配置Shenanigans。但是,这也意味着一些更高级的方面不可用,您只能真正将其用于非常基本的应用程序。
>另一个很大的骗局是,在Windows上,首先启动命令提示符,然后启动“应用程序”。如果您想使用该应用程序,则必须保持命令窗口的打开状态,这可能会使方案的技术文盲的人有点混乱。
>更重要的是,您默认情况下只能运行一个ngrain应用程序,因为它实际上在端口8000上启动了一台服务器,然后使打开“秘密”的无头浏览器访问localhost:8000。如果要启动几个不同的nightrain应用程序,则需要更改设置中的端口。这也意味着简单地访问Localhost:8000在主机机器的浏览器中会向您显示同一应用。
Nightrain与开箱即用的大多数PHP应用程序/框架兼容,只要您将数据库更改为SQLite(即使用的),并调整捆绑的php.ini,以使某些缺失的扩展名(如果有)。 MySQL没有捆绑,并与常规堆栈一起安装它并不简单。无论如何,使该应用程序上游将SQLite数据发送到您用于集中式数据库的服务器非常简单,因此仅在系统运行的系统上仅使用SQLITE有些逻辑。
到目前为止,该应用程序的最大缺点是它使用WX小部件为无头浏览器供电,并且在Windows上,这似乎归功于IE7。如上所述,通过WXPYTHON进行更改,似乎有可能,但尚未尝试。一个人只能希望浏览器对象很快就会更新到更可用的东西 - 直到那时,直到所有其他关键缺点都固定了,我什至无法开始想象nightrain的用途。
>
2。 wxphp
WXPHP代表“ PHP的WXWIDGETS”,是包装WXWIDGETS库的PHP扩展程序,该库允许编写多个平台桌面应用程序,该应用程序使用可用于不同平台可用的本机图形组件。 -
wikipedia
>您将WXPHP安装为一个单独的程序,然后通过简单地对其进行双重键入来支持执行.wxphp文件。
这意味着您的应用程序仅仅是文件,您可以轻松地将它们分发。您可以像往常一样将代码整理到文件和类中,并分发文件夹。主.wxphp文件然后可以包含这些其他资源。
>
>该安装带有几个示例,其中包括一个初始化WebView并在WX框架中加载WXPHP网站的示例。要注意的一件事是,使用WXPHP,您不会像网络上那样开发网站。换句话说,您不会开发离线网站,而是将各种WX小部件串在一起。因此,库有一些学习曲线,您将缺乏可能习惯的HTML5功能,或者网络开发的简单性。有一些概念证明了运行和服务请求的内部PHP服务器的概念,但这是实验性和复杂的,并且再次公开了Local主机,就像Nightrain一样。
WXPHP还带有一个可爱的表单构建工具,该工具将帮助您通过Wysiwyg编辑器自动生成WXPHP应用程序所需的PHP代码。

>
在您将WX视为琐碎之前,人们已经开发了更多的基本应用程序。例如,这是一个带有远程调试和插件API的PHP编辑器。
如果您认真对待PHP桌面开发,那么与夜间卫星相比,WXPHP是迄今为止更好的选择,即使Nightrain允许您为GUI编写良好的旧HTML。
WX的最大优势之一是,一旦安装,可以在鼠标的单击时运行所有.wxphp文件。没有其他安装,没有尴尬的控制台窗口。对于技术文盲的人来说,这是天哪 - 您可以通过简单的电子邮件轻松地在公司内部分发该应用程序,并且更新过程与覆盖文件一样简单。
3。 tidesdk
tidesdk的方法与上述两个方法有些不同。 您安装了SDK以能够开发应用程序,并且每个平台都有某些先决条件。 Tidesdk实际上是重命名的钛桌面项目。钛仍然专注于移动设备,并放弃了桌面版本,该版本由一些开源并称为Tidesdk的人接管。
>根据“入门指南”安装,一旦我们拥有Tidesdk Developer App(一个帮助我们将应用程序捆绑到可分布的软件包)的助手应用程序),我们就可以开始开发。您使用潮汐构建的应用程序(通过辅助应用程序或通过命令行)既可以纯粹可执行,也可以作为可安装的软件包分发,这些软件包可获得整个“应用程序”处理,包括嵌入的安装过程,使其无法安装,使其无法安装通过Windows或其他操作系统上的软件包管理器上的添加/删除程序。
>
应用程序资源与WebKit客户端和熟悉且广泛的API结合使用。 API具有特权,提供文件系统访问,使您可以读取和管理文件。还提供了API来创建和与本地数据库进行交互。网络API允许创建客户端和服务器或在低得多的级别与HTTP接口。也可以打开与其他服务的套接字连接。
通常,Tidesdk使用HTML,CSS和JS来渲染应用程序,但它也支持Python,Ruby和PHP等脚本语言。渲染背后的引擎是WebKit,这意味着它的启动会很慢,但是它将支持最新的Web技术。
>
通过向清单文件添加模块语句来激活>
请注意,使用脚本模块进行脚本语言将对您的应用程序的安装和运行时间产生重大的性能惩罚。>有趣的是,Tidesdk具有一个对象桥,该对象桥可让您在应用程序中使用PHP时,将数据从JS无缝转换为PHP和Back。您可以在这里阅读更多信息,但是详细的Tidesdk教程即将推出。
使用Tidesdk进行PHP桌面应用程序开发有几个主要缺点:>
PHP开发工作流程严重记录不足,并且非常容易受到错误的影响,但几乎不可能进行调试。
捆绑的PHP版本已过时 - 在撰写本文时版本5.3.x版本。虽然通过SDK安装目录中的 /模块文件夹,用最新的模块文件夹替换它相对容易,但这是一个额外的滋扰,缺少许多现代PHP功能,这些功能可能会在桌面应用程序开发中使用,更不用说内置的服务器也可能在此处获得深奥的用例。
有一个学习曲线。 DOM API与您在Web开发中可能使用的不同。要在屏幕上回声,您需要调用$ document-> write()而不是回声。这是一个较小的区别,但没有充分记录,可以绊倒您。- >
到目前为止,最大的缺点是汇编。通过构建应用程序获得的包装与您构建的平台绑定。要为多个环境构建应用程序,您需要拥有这些多个环境。 Windows/linux差异很容易通过虚拟机解决(尽管主机是Windows,并且您的Linux VM都比相反的方式更容易解决),但是除非您有OS X设备,否则祝您好运,除非您有OS X ,也是。
-
tidesdk是一个整洁的选择,但它远非可用。它对HTML/CSS/JS的交付非常有用,但是当涉及PHP时,我相信WXPHP仍然是您最好的选择。
- 其他选项
- 也有其他选项可用,但至少可以说。
phpdesktop类似于夜间,但仅是窗口。另一方面,它与Mongoose服务器捆绑在一起,因此可以执行并行请求。它还运行Chrome,这意味着渲染/打开的速度很慢,但支持最新的Web技术。它的Windows-Exexclusitive从此多平台解决方案列表中取消了资格。
>韦伯德和PHP GTK都过时了,可能不应该使用。除此之外,Webinder仅是Windows。
结论
虽然为台式机构建PHP应用程序的原因因用例而有所不同,而且通常不容易证明是合理的,但我相信如果您需要该选项,这是很好的。
- 您是否在PHP中开发了桌面应用程序?如果是这样,请让我知道为什么和您使用了哪种技术 - 我绝对希望您写自己的经验。知道还有其他选择吗?在评论中让我知道!
>
>经常询问的问题(常见问题解答)与PHP
开发跨平台桌面应用程序
>将PHP用于桌面应用程序开发有什么好处?
php是一种通用的脚本语言,主要用于Web开发。但是,由于其众多好处,它也可以用于桌面应用程序开发。首先,PHP是跨平台,这意味着它可以在Windows,Linux和MacOS等各种操作系统上运行。这使得它非常适合开发可以在任何平台上运行的桌面应用程序。其次,PHP拥有庞大的开发人员社区,这意味着您可以在遇到问题时轻松找到资源和帮助。最后,PHP易于学习和使用,这对于桌面应用程序开发的初学者来说是一个不错的选择。
我可以使用PHP来开发复杂的桌面应用程序吗?用于开发复杂的桌面应用程序。尽管传统上是用于网络开发的PHP,但多年来它已经发展出来,现在包含了可以开发复杂桌面应用程序的功能。这些包括面向对象的编程,异常处理和名称空间。此外,还有几种PHP框架和工具,例如PHP桌面和PHP-GTK,可以帮助构建复杂的桌面应用程序。
PHP桌面如何工作?
>
php桌面是一种工具,是一种允许的工具您可以使用PHP开发跨平台桌面应用程序。它将Web服务器,PHP解释器,浏览器和JavaScript引擎嵌入到一个软件包中。这意味着您可以使用PHP编写应用程序,并且它将作为独立的桌面应用程序运行。 PHP桌面处理所有后端流程,因此您不必担心设置服务器或配置PHP环境。>
什么是PHP-GTK,如何将其用于桌面应用程序开发?>我可以使用PHP桌面应用程序访问系统资源吗? PHP具有几个内置功能,可让您与文件系统,网络和其他系统资源进行交互。但是,请记住,访问系统资源可以构成安全风险,因此,在开发应用程序时遵循最佳实践非常重要。>>将使用PHP用于桌面应用程序开发的局限性是什么? 🎜>虽然可以将PHP用于桌面应用程序开发,但确实有一些局限性。 PHP的速度不如C或Java等编译语言,因此它可能不适合需要高性能的应用。此外,PHP不是为桌面应用程序开发而设计的,因此它缺少其他桌面应用程序开发语言中常见的功能。但是,诸如PHP桌面和PHP-GTK之类的工具可以帮助克服其中的某些限制。
> 我可以将现有的PHP代码用于桌面应用程序开发吗?
是的,您可以为您使用现有的PHP代码作为现有的PHP代码。桌面应用程序开发。如果您有PHP Web应用程序,则可以使用PHP桌面之类的工具将其转换为桌面应用程序。这可以节省大量的时间和精力,因为您无需从头开始重写您的应用程序。>
>我如何调试我的PHP桌面应用程序?>
>调试PHP桌面应用程序类似于调试PHP Web应用程序。您可以使用PHP的内置错误报告功能显示错误。此外,您可以使用Xdebug之类的PHP调试器来浏览您的代码并查找错误。某些PHP桌面开发工具还提供调试功能。>我可以使用带有PHP桌面应用程序的数据库吗? 是的,您可以使用带有PHP桌面应用程序的数据库。 PHP支持广泛的数据库,包括MySQL,PostgreSQL和SQLite。您可以使用PHP的内置数据库功能或PDO(例如PDO)的数据库抽象层来与数据库进行交互。就像在PHP Web应用程序中一样,您可以存储和检索数据。。
以上是使用PHP开发跨平台桌面应用程序的3种方法的详细内容。更多信息请关注PHP中文网其他相关文章!