小马也是无意中心血来潮,想着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。
解压后我们注意到很多相关拓展。
小马打开了几个demo,大多都继承了GTK。
运行效果类似:
嗯,似乎一切还算顺利。还有一个问题没解决,那就是,我要的.exe呢?难道每次都要命令行敲php.exe your.php吗?小机灵鬼出现了,我把这个命令写成.cmd或者.bat批处理(比如下图),每次只要点击一个这个文件就可以了。小马已经语塞。
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是不是世界上最好的语言的时候,你就还可以抛出这招。
这次的分享就到这了。水平有限,不到之处欢迎指正。