PHP能不能写一个类似计算器桌面应用

简介: 小马也是无意中心血来潮,想着PHP能不能也写个类似计算器一样的桌面应用。比如,桌面有个“计算器.exe”,点开后就是计算器界面,重要的是这个玩意是用PHP写的,对,你没看错,就是PHP。

小马也是无意中心血来潮,想着PHP能不能也写个类似计算器一样的桌面应用。比如,桌面有个“计算器.exe”,点开后就是计算器界面,重要的是这个玩意是用PHP写的,对,你没看错,就是PHP。

CLI(命令行运行 / Command Line Interface)模式

首先,我们要知道PHP有哪些运行模式。

1)CGI(通用网关接口/ Common Gateway Interface)

2)FastCGI(常驻型CGI / Long-Live CGI)

3)CLI(命令行运行 / Command Line Interface)

4)ISAPI(Internet Server Application Program Interface)

我们经常看到的PHP是跑在Apache或者NGINX的web服务器上,也就是CGI,FastCGI模式上,需要借助于web服务器,那么我们的访问也必须借助于浏览器。有的同学说了我写个计算器的html前端页面,然后web服务器上放PHP后端计算逻辑,使用的时打开浏览器不就搞定了。没错,是很完美,但是小马想要的是桌面应用呢。

于是cli模式登场了。这个模式很低调,乃至很多开发了PHP很多年的老手都不知道还有这玩意。所有的PHP发行版,不论是编译自源代码的版本还是预创建的版本,都在默认情况下带有一个PHP可执行文件。这个可执行文件可以被用来运行命令行的PHP程序。(参考原文)

要在你的系统上找到这个可执行文件,就要遵照下面的步骤:

    Windows :放在PHP主安装目录下,文件名是php.exe或者(在老版本的PHP里)是php-cli.exe。

    Linux : 保存在PHP安装目录的bin/子目录下。

需要注意的是CLI模式和CGI模式运行时用的PHP.INI并非同一套配置,需要单独配置。

也就是如果是window 你只要cmd 窗口 php.exe your.php就可以执行你的PHP代码了,直接甩开web服务器。好了,我们似乎解决了需要依赖web服务器和浏览器的尴尬了。

像swoole也是使用了cli运行模式。

PHP-GTK编写一个windows桌面应用程序

那么另一个问题来了,不借助浏览器怎么渲染图形界面呢?智慧的PHPer当然不会束手无策了。于是PHP-GTK诞生了,我们暂且叫它为图形界面开发框架吧。这玩意诞生在很早之前了,已经很少维护了,估计是使用价值不大吧。像与其同类的也还有好多。

于是小马下载了这个框架,下载地址这里。我们可以看到最新的维护时间停留在了2015。
image.png

解压后我们注意到很多相关拓展。

image.png

小马打开了几个demo,大多都继承了GTK。
image.png

运行效果类似:
image.png

嗯,似乎一切还算顺利。还有一个问题没解决,那就是,我要的.exe呢?难道每次都要命令行敲php.exe your.php吗?小机灵鬼出现了,我把这个命令写成.cmd或者.bat批处理(比如下图),每次只要点击一个这个文件就可以了。小马已经语塞。
image.png

php文件编译成exe可执行文件工具

小马又找到了一款工具bamcompile。可以把PHP文件编译成EXE。很多人说这种编译只不过是把PHP解析器和PHP代码一起打包而已。

类似的工具还有:Peachpie、Phalanger、Bambalam PHP EXE编译器/嵌入器、ZZEE PHPExe、PHP扩展bcompiler、WinBinder开源扩展、PHP Desktop、PHP Nightrain。

我们怎么用GO写一个exe文件呢?Walk ,GO语言的图形界面。参考这里。

好了,似乎今天的文章没有啥用处,而且PHP的很多GUI项目也已经GG了。因为很少有人用PHP来写桌面图形界面应用,但如果有人和你杆起来PHP是不是世界上最好的语言的时候,你就还可以抛出这招。

这次的分享就到这了。水平有限,不到之处欢迎指正。
image.png

相关文章
|
前端开发 PHP
实训项目:PHP计算器功能程序实现
  设计一个网页,让用户输人一个运算式,采用下拉列表提供“加、减、乘、除、模(%)”至少4种运算符。当用户单击“求值”按钮时,自动计算结果并显示出提示信息(可以是弹框显示结果,也可以是在浏览器的页面显示结果。
135 0
实训项目:PHP计算器功能程序实现
|
10月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
94 0
|
10月前
|
关系型数据库 MySQL 数据库连接
PHP 原生连接 Mysql
PHP 原生连接 Mysql
119 0
|
10月前
|
关系型数据库 MySQL Unix
PHP MySql 安装与连接
PHP MySql 安装与连接
174 0
|
10天前
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
19 1
|
2月前
|
关系型数据库 MySQL PHP
|
1月前
|
Ubuntu 关系型数据库 MySQL
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
22 0
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
|
19天前
|
前端开发 关系型数据库 MySQL
使用 PHP 和 MySQL 实现留言板功能
使用 PHP 和 MySQL 实现留言板功能
36 0