【问题标题】:Transforming PHP project to a desktop application [closed]将 PHP 项目转换为桌面应用程序 [关闭]
【发布时间】:2012-09-10 07:27:56
【问题描述】:

大约一年半以来,我一直在为私人洪流跟踪器开发一个元搜索引擎。它是用 PHP(OOP 中的某些部分)和 JS 编写的,因为我只知道这些。
现在我想做一个桌面版本,一个独立的跨平台应用程序。

基本上,该应用的作用是:

  • 将登录数据发送到跟踪器。 (file_get_contents())
  • 接收生成的 cookie。 ($http_response_header)
  • 使用生成的 cookie 访问搜索 URL。 (file_get_contents())
  • 使用正则表达式解析 HTML 响应。 (preg_match())
  • 显示所有跟踪器的结果。

主要适用于远程站点。

程序现在的工作方式允许用户添加跟踪器进行搜索,而无需触及主程序代码。它们用作插件。 这是正则表达式部分,也是最重要的部分。我将维护这两个代码(PHP 和桌面),因此能够在两个应用程序中以相同的方式实现正则表达式非常重要。

所以,我需要帮助来选择正确的语言,就像我使用 PHP 所做的那样。

我离开程序页面是为了帮助您更好地了解它的内容。
Official site
SourceForge

对不起,如果这是一个愚蠢的问题,但我需要指导。
在此先感谢 azeós。

【问题讨论】:

  • 这个很笼统,但是你可以学习一些Java来构建一个跨平台的桌面应用程序。您需要非常熟悉 OOP 并学习如何编写 GUI 组件。您还需要学习如何编写 Web 服务以与您的 PHP 端公共 API 交互。
  • 好的,这是 Java 的两点。那么 Python 呢?我读到这是跨平台应用程序的一个选项。对于我所需要的,有什么理由选择一个而不选择另一个?
  • 阅读其他答案,看起来任何可以访问 GUI 库的语言都可以工作。我提到 Java 的主要原因是它在学校里相当标准,有很多资源。我没有用 Python 做过任何桌面工作,但我相信它也很有用。但在这种情况下,它实际上取决于对 GUI 进行编程的难易程度。根据您使用的 GUI,它可能很容易,也可能完全是痛苦的。在可移植性方面,Java 在今天仍然是可移植桌面应用程序的标准。
  • 不确定为什么这个问题被关闭了。我不认为缺乏特异性。当然,“移植到另一种语言”是一个可能的答案,但其他答案特定于让 PHP 应用程序在桌面上工作:已经给出了 PHP-GTK,以及包装了一个小型网络服务器和浏览器。 phalanger.codeplex.com 也有可能。

标签: php cross-platform html-parsing desktop-application


【解决方案1】:

这可能是学习一些 Java 的好机会,但您也可以考虑使用一个库来让 PHP 访问 GUI 框架,如 http://gtk.php.net/

在 SO 上有一个 related question,它也可能会给你一些想法。

【讨论】:

  • 其实我正在尝试 PHP GTK,但我认为是时候学习一门新语言了。无论如何,在你提到的问题中,他们谈论“Phalanger”,我会试一试。谢谢。
  • 我认为 C++ 可能更适合您的应用程序。通常,与 torrent 相关的应用程序很容易过度使用并开始疯狂使用资源。但是,请尝试使用 PHP 的本机桌面打包程序。 nightrain.naetech.com
【解决方案2】:

在不分叉开发过程的情况下分发应用程序的一种偷偷摸摸的方法是将大部分代码保留为 PHP,并包含 PHP 的副本和轻量级 Web 服务器(例如 nginx)。这两个是在 BSD 风格的许可证下获得许可的,这似乎与分发兼容。此时,您的“桌面应用程序”将是一个本地 Web 服务器,用户可以在他们最喜欢的 Web 浏览器中通过“http://localhost:12345”(或您选择的端口)访问该服务器。

如果这个想法还不够荒谬,您还可以考虑使用 Mozilla XULRunner,这是一个运行 Firefox 的跨平台桌面应用程序引擎。您可能需要将其与上面列出的服务器结合使用。根据您愿意学习多少 XUL,您可能会发现额外的 Javascript 权限使您有足够的能力单独在 XUL 中运行整个应用程序。

【讨论】:

  • 我想避免安装外部程序(又名网络服务器)。但是,可能在我开发桌面版本之前,我可以包含一个带有 PHP 的便携式服务器。这不是一个糟糕的选择......
猜你喜欢
  • 2011-10-25
  • 2011-09-07
  • 1970-01-01
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 2016-03-02
  • 1970-01-01
相关资源
最近更新 更多