PHP 中任何真正的 MVC 库(用于 GUI 应用程序)

any real MVC library in PHP (for GUI apps)

提问人:mario 提问时间:1/2/2011 最后编辑:mario 更新时间:6/3/2020 访问量:1495

问:

我想知道其中一个 PHP gui 库是否有任何抽象框架。我们有 PHP-GTK,一个 PHP/Tk 接口,似乎还有 PHP-QT(没有尝试过。

我知道在 Python 中针对原始 Gtk+ 接口进行编写是可以忍受的,因此它对 PHP 来说似乎不是很诱人。我认为 Qt 也是如此,Tk 也是相当低级的。因此,我正在寻找能够在三者中的任何一个之上提供更好的对象结构的东西。主要是 TreeViews 总是一件苦差事,php-gtk 回调在 PHP 中很奇怪,所以我想要对此进行简化。如果它可以轻松地在我的业务逻辑上添加 GUI/视图,而不需要太多的控制代码,这可能已经有所帮助了。

因此,由于 GUI 应用程序是 MVC 或 MVP 真正有意义的领域,我想知道是否存在任何库。

仍然有待回答。
(可能会有第二轮赏金。这是一个不常见的话题,所以需要更多的研究。

php-gtk php-qt的

评论

3赞 Jani Hartikainen 1/2/2011
还没有见过用于 GUI PHP 应用程序的 MVC 库 - 可能主要是因为它们是一个相当罕见的品种 - 但仍然很有趣的问题。
0赞 Gordon 1/5/2011
我很想看到这样的东西,最好是支持基于 JS 的 RIA 框架,比如 ExtJS 和 Dojo 甚至 XUL,但这可能只是一个白日梦。
0赞 DampeS8N 1/10/2011
这很有趣,对于PHP来说,这是一个相对较新的方向,我希望看到它进入这个方向,以便更好地与.Net和Java竞争。我正式提出要为任何开源项目做出贡献。如果您因此问题而开始一个,请提醒我。

答:

1赞 Samnan 1/3/2011 #1

你试过WinBinder吗?不完全与 MVC 相关,但是一个非常好的扩展,可以在 PHP 中创建基于 gui 的程序。

评论

0赞 mario 1/3/2011
不考虑,因为它仅适用于 Windows,对我来说没有用。回调 API 比 php-gtk 中的要笨拙一些。但它是相关的,所以让我们把这个提示留在这里。其他人可能会发现它比其他 GUI 工具包更有用。
2赞 mario #2

[不是答案。只是想从问题中删除它,因为它只是相关的,而不是解决方案。

PHP接口预处理器。但是,它非常简单和低级。它为Gtk提供了输出接口,以及ncurses,但也提供了PDF或XHTML序列化。这很有趣,因为它接近真正的 MVC 结构,允许将视图交换为不同的后端,甚至无需调整控制器。但是它只提供了基本的小部件,而不是很多简化。因此,我只认为它与我最初的问题有关。所以,旁注。

0赞 vartec 1/11/2011 #3

我真的怀疑你会找到这样的东西来使用 OotB。PHP GUI编程在几年前完全失败了。

但是,您可以做的是使用某种桥接器来连接来自另一种语言的体面的 MVC。您有以下选择:

评论

0赞 mario 1/11/2011
Swig/Boost 可能是 Gtk、Tk 和 Qt 绑定的基础。Java 桥有点花哨(而且很复杂),但却是进一步研究的有趣途径。然后 Quercus 或 ProjectZero 也可能有意义。最后,我更喜欢Python IPC桥接器。
0赞 vartec 1/11/2011
如果你要切换到 Python,你真的有更多的选择。包括非常流行的 wxWidgets。
0赞 vartec 1/11/2011
至于 Quercus 和 ProjectZero,它们也不是真正 100% 兼容 Zend 的 PHP。
0赞 mario 1/25/2011 #4

http://phpketchup.isgreat.org/ PHPKetchup 是一个处于规划阶段的新项目。目前没有任何可用的代码(似乎也是商业性的,而不是开源的)。它被宣布为PHP-GTK之上的框架。有一个概念文档明确列出了设计 MVC 框架的目标。

然而,它们似乎从CodeIgniter中汲取了灵感,主要是从常见的PHP框架结构中汲取了灵感。重点似乎不在于将 PHP-GTK 与应用程序逻辑集成,而主要在于提供一个数据库接口作为模型,并为 View 提供一个瘦的 Gtk 接口。

MVC 架构:
我们将为 PHP-GTK 框架设计和实现模型-视图-控制器 (MVC) 架构。SQLite 将用于 Model。删除 HTML、CSS 和 Javascript 后,PHP-GTK 函数和 Glade 文件将集成到 View 中。控制器将相应地修改,以使用新创建的视图。

因此,它可能只是在名称和组织上是 MVC,但其中一个图表提到了“PHP-GTK 函数添加”,并且还有对象结构的 Gtk 助手的进一步提示。

1赞 still_dreaming_1 6/1/2020 #5

现在有几个选项适用于较新版本的 php。其中一些不能为您提供开箱即用的 MVC,但您可以使用它们在 php 中制作 GUI 应用程序。

有一个非常容易使用的php-gui。它不需要任何特殊的 php 扩展,您可以像您依赖的任何其他 php 库或框架一样使用 composer 安装它。它面向简单、标准的用户界面。

如果你需要做一些非常自定义和图形化的东西,并且愿意使用一个设计用于用 C 语言制作游戏的 API(或者如果你想用 php 制作游戏),你可以通过 SDL 通过 FFI 通过 ffi-sdl 使用 OpenGL。它目前(截至 2020 年 6 月 1 日)需要 php 7.4 或更高版本,因为它使用了最近添加的 php ffi 功能。尽管这依赖于 ffi 扩展,但 php-ffi 仍然很容易添加到您的项目中。它仍然有点无扩展(如 php-gui),因为没有为此量身定制的扩展。与其他一些扩展不同,ffi 不会被维护的可能性不大,因为它是 php 本身的一个功能。大多数人只需要使用 composer 将 ff-sdl 添加到他们的项目中,并可能在他们的 php.ini 中启用 ffi。

我刚刚了解到你也可以使用PeachPie。它允许您为 .NET 编译和运行 php 代码,因此您可以访问 .NET GUI 库,包括 MVC 库。