NativePHP这个名字,字面直译就是本机PHP,也就是运行在本地的PHP程序,以前的PHP,通常是用来写Web开发的,它的PHP代码是运行在服务器端的,而NativePHP就改变了这一规则。它可以构建移动端APP(Android 和IOS),也可以构建桌面端应用了。
这是它的官网:Baking Delicious Native Apps – NativePHP
那么NativePHP是怎么运行起来的?
其实,并不神秘,原理也很简单,很多程序都是这样的。就是以前的PHP运行时,(一个PHP的解析程序)是运行在服务器电脑上面的,现在NativePHP直接把PHP运行时打包到了你的程序中(exe/app)。当然官方是对NativePHP的运行时进行了优化的。
下面是官方的示意图:

NativePHP 会将 PHP 运行环境与应用程序打包在一起,依托 Swift、Kotlin 移动端框架或 Electron 桌面框架封装运行。它通过专属桥接接口直接调用设备能力,并在原生网页视图中展示应用界面。你依旧可以沿用熟悉的 PHP 编码方式,仅需借助少量扩展工具,就能对接设备原生功能。原理其实并不玄妙,本质就是让 PHP 代码直接在用户设备上本地运行。
左图,我们可以看到,NativePHP的程序最外面是一个Swift 或 Kotlin的壳,然后里面有一个PHP的运行时,运行时中包含一个PHP扩展
这张图里的 Custom PHP Extension(定制的 PHP 扩展),是 NativePHP 实现「PHP 调用系统原生功能」的核心桥梁,你可以把它理解成一个专为 NativePHP 打造的 PHP 插件。通过它你可以调用操作系统的底层接口。也可以把 PHP 的调用请求,转交给底层的 Custom Swift/Kotlin Bridges,再由这些桥接层去执行真正的系统操作;反过来,也能把系统返回的结果传回给 PHP。
这个Custom PHP Extension非常核心,有了它,才有NativePHP ,才可以开发本地程序。
当然最终呈现给用户看到的,还是需要一个WebView,它就是Native WebView ,它是你的软件里自带的一个迷你浏览器内核,专门用来显示你的 PHP / HTML 页面。它不是 Chrome,它是嵌在 APP 里面的浏览器组件。
最后
现在你应该对NativePHP有一定了解了吧?接下来,我们开始学习用NativePHP开发移动端应用。后面我们再学习开发桌面端应用。
