《细说PHP》第四版 样章 第二章 PHP的应用与发展 2
2.2 PHP的应用
任何一种主流的编程语言,几乎都可以开发任何类型的软件。编程语言就是一种开发工具,而选择适合的工具去做适合的事儿,才能体现其应用价值。PHP最主要的应用,就是与数据库交互来开发Web应用。简单说来,PHP是一门脚本语言,基本都用在Web应用的中间层,负责数据库以及前台页面交互和信息传递,所以特别适合编写业务逻辑。目前,网站和移动网站、公司内部应用系统、游戏的服务器端、APP(iOS和Android)和WebApp的服务端接口、微信小程序后台和微信公众平台中的服务号、订阅号二次开发等,PHP几乎是开发这些应用的首选。
2.2.1 开发网站和移动网站的应用
网站是一种非常重要的通信工具,只要用户有网络和权限,可以在任何时间、任何地方,访问任意网页,如图2-2所示。个人可以通过网站来发布自己想要公开的资讯,或者利用网站来提供相关的网络服务。企业网站则在企业的发展中充当了重要的角色,是企业对外的窗口,可以宣传企业自身、推广提高产品品牌,是交流、销售和服务的工具,投标时成为了企业实力的代言,合作时作为企业的名片,企业做活动时能作为活动单页在微信等交流平台传播等。移动网站就是在移动端访问的网站,通俗来说就是适合手机或平板电脑访问的网站,随着移动互联的发展,移动设备已经超过了PC(个人电脑)的使用数量,而且使用频率也很高,所以不管理是企业和个人在制作网站时都要去兼容移动端的访问。
图2-2 企业网站和移动站点展示
PHP就是为开发Web而诞生的,在Web项目开发过程中具有极其强大的功能,开源免费、语法简单开发速度快,降低了企业的开发成本。可以运行在多个平台上,也能挂载到多种Web服务器上应用,还可以连接各种数据库,安全可靠,运行速度快。另外在网站开发上可用的二次开发的项目非常多,可选择的PHP开发框架也是最丰富的。大概全球有83.1%的网站是使用PHP语言构建的,这其中共有34.5%的网站是使用流行的PHP框架构建的。像我们听过的一些国外大公司Facebook、WordPress、Yahoo等全是用PHP编写的,百度、阿里、腾讯等知名互联网企业,多数频道也都用PHP来开发的。
2.2.2 在企业内部信息化系统中的应用
企业信息化建设是非常有意义的,目前正处在知识经济和互联网浪潮的新时代,企业面临着日趋激烈的市场竞争,信息化建设能使企业获得持续发展。例如,信息化可以促进组织结构优化,提高快速反应能力;信息技术应用范围涉及整个企业的经济活动,可以有效、大幅度地降低企业的成本;提高企业的市场把握能力,缩短了企业与消费者的距离;信息技术能极大地提高企业获取新技术、新工艺、新产品和新思想的能力;电脑与管理的有机结合,促进企业提高管理水平;提高企业决策的科学性、正确性;提升企业人力资源素质,又可以节约人员成本和沟通等业务流程上的消耗。兄弟连教育内部信息化系统如图2-3所示。
图2-3 企业内部信息化系统
企业选择PHP开发信息化系统,主要是因为PHP适合做Web开发,特别适合编写业务流程。最主要的优点是功能强大、简单易用、开发速度极快、开发周期短、成本低。企业信息化系统和网站不同之处在于,网站是对所有人公开,所以你可以随意去浏览。企业内部的信息化系统则专为自己员工设计,必须有专属的权限才能进入使用,并且不同级别、不同部门的工作人员有不同的权限和业务流程。所以企业内部信息化系统是除网站以外,PHP开发的主要市场,大概有70%的信息化系统是使用PHP语言开发的。中小企业基本都会使用PHP建设信息化,而一些大型企业、国企和事业单位主要会选择Java语言开发信息化系统,其实对于企业信息化系统,Java可以完成的功能PHP几乎都可以做。
2.2.3 在App接口开发方面的应用
直观地讲App就是手机和平板电脑上的应用软件,现在主要指的是在苹果操作系统iOS、其他设备操作系统Android等下的应用软件。App的创新性开发,始终是用户的关注焦点,移动App可整合定位(LBS)、增强现实(AR)等新技术,带给用户前所未有的用户体验;基于手机的随时随身性、互动性特点,容易通过微博、社群(SNS)等方式分享和传播,实现裂变式增长;开发成本相比传统营销手段成本更低;通过新技术和数据分析,App可实现精准定位企业目标用户,实现低成本快速增长;用户手机安装App以后,企业即埋下一颗种子,可持续与用户保持联系,如图2-4所示。
用于App开发的语言有很多种,像iOS平台开发语言为Objective-C,Android平台开发语言为Java等。App有单机版应用,但现在企业的App几乎都是在手机端展示操作界面,程序则在服务器端运行。PHP不是用来写前端界面展示的, 而是用来写App服务器端程序的。写服务器端的程序语言也有很多选择,现在的趋势是前端和后台服务完全分离,前后端通过“接口技术”沟通,所以前端不管用什么语言开发界面都可以,后端也可以和语言选择无关。现在有60%以上的App接口,选择使用PHP开发后端程序。因为PHP本身是跨平台的,可以在Windows和Linux等多个平台上运行,PHP消耗相当少的系统资源,运行效率相对高,和Apache及MySQL的完美搭档,本身都是免费开源的,开发效率高,成本低。
图2-4 一些常见的企业App图标
2.2.4 对微信公众平台二次开发的应用
微信公众平台,简称公众号,公众号又被分成订阅号和服务号。微信公众平台的二次开发,是通过个人或企业在自己注册的订阅号或服务号上,按微信公众平台提供的接口权限,结合企业自身业务进行改版或增加功能,来扩展自媒体活动。简单来说,就是进行一对多的媒体行为活动,将企业信息、服务、活动等内容通过微信网页的方式进行表现。例如商家通过对自己的服务号进行二次开发后,就可以展示商家微官网、微会员、微推送、微支付、微活动、微报名、微分享、微名片等,这些已经形成了一种主流的线上线下微信互动营销方式,如图2-5所示。
图2-5 微信公众平台的后台和应用展示
微信公众平台的后台实际上就是一个Web页面,能够开发Web项目的语言都可以实现微信公众平台的开发。而PHP是脚本语言,开发测试方便,节省了编译的时间。 由于PHP在Web开发中的优势,微信官方给出的参考实例都是用PHP实现的,目前有80%以上对公众平台的二次开发都在使用PHP语言。
2.2.5 微信小程序开发应用
2017年1月9日微信小程序正式上线,相当于App的替代产品,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。主体类型为企业、政府、媒体、其他组织或个人的开发者,均可申请注册小程序。小程序、订阅号、服务号、企业号是并行的体系。一些移动办公,小游戏逐渐都在微信小程序中流行起来,如图2-6所示。
图2-6 企业的一些微信小程序应用
微信小程序的开发其实就是Web开发,是PHP开发的强项,可以将很多现有的PHP项目二次开发改成微信小程序,微信官方给出的小程序实例演示都是用PHP语言开发。PHP编写接口简洁、方便、安全,与数据交互灵活,好用的开发框架丰富。随着微信的用户逐渐增加,并且其使用频率在手机中的应用也是最高的,所以在微信中运行的微信小程序将是App的替代品。和App一样,微信小程序也是前后台分离的,前台使用HTML/CSS/JavaScript开发界面,不受操作系统的限制,不像App不同的操作系统要选择不同的语言开发App前端,开发慢,成本高。因为也是通过“接口”技术和后台应用结合,所以和服务端开发语言没有关系,可以使用PHP、Python和Java等,目前有80%以上的微信小程序选择使用PHP进行开发。
2.2.6 PHP在其他方面的应用
除了前面介绍过的微信小程序适合用PHP语言开发,PHP还常用来和Shell脚本结合,编写服务器运维脚本程序,做自动化运维。因为可以编写一段PHP脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,只需要PHP解析器来执行即可。这种用法对依赖cron(UNIX或者Linux环境)或者Task Scheduler(Windows环境)的日常运行的脚本来说是理想的选择,这些脚本也可以用来处理简单的文本。还有一部分企业选择使用PHP开发网页游戏服务器端程序。另外,对于有着图形界面的桌面应用程序来说,PHP或许不是一种最好的语言。但是如果用户非常精通PHP,并且希望在客户端应用程序中使用PHP的一些高级特性,可以利用PHP-GTK(PHP的一个扩展)来编写这些程序。总之,PHP是服务器端脚本开发语言,只要是在服务器端的应用都可以选择用PHP来实现。
《细说PHP》第四版 样章 第二章 PHP的应用与发展 2的更多相关文章
- 《细说PHP》第四版 样章 第二章 PHP的应用与发展 1
<细说PHP>第四版 样章 第二章 PHP的应用与发展 1 学习任何编程语言之前,先了解一下它的应用与发展是很有必要的.从Web开发的历史看来,PHP.Python和Ruby几乎是同时出现 ...
- 《C++Primer》第五版习题答案--第二章【学习笔记】
C++Primer第五版习题解答---第二章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/9 第二章:变量和基本类型 练习2.1: 类 ...
- Linux第一章第二章学习笔记
第一章 Linux内核简介 1.1 Unix的历史 它是现存操作系统中最强大最优秀的系统. 设计简洁,在发布时提供原代码. 所有东西都被当做文件对待. Unix的内核和其他相关软件是用C语言编写而成的 ...
- Windows程序设计(第五版)学习:第二章 Unicode简介
第二章 Unicode简介 1,Windows通过双字节技术DBCS解决这个问题,代码页定义不同的字符集,称为ANSI字符集,比如日文为CP932,韩文为CP949,繁体中文为CP950,简体中文为C ...
- c#高级编程第七版 学习笔记 第二章 核心c#
第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用S ...
- CSS3秘笈复习:第一章&第二章&第三章
第一章: 1.<cite>标签不仅可以将网页设置为斜体,还能给标题做上标记,使它便于被搜索引擎搜索到. 第二章: 1.import指令链接样式表: CSS本身有一种添加外部样式的方法:@i ...
- Practical Vim 第一章 & 第二章
第一章:Vim 解决问题的方式 前言 本质上讲,我们的工作是重复性的.凡是可以简化重复性操作的方式,都会成倍地节省我们的时间. Vim 对重复性操作进行了优化.它之所以能高效地重复,是因为它会记录我们 ...
- Linux内核设计与实现 第一章 第二章
第一章 Linux内核简介 Unix特点: (1) Unix很简洁,仅仅提供几个几百个系统调用并且有一个非常明确的设计目的 (2) 在Unix中,所有的东西都被当作文件对待,通过一套相 ...
- 《细说PHP》 第四版 样章 第二章 PHP的应用与发展 5
2.5 如何学习PHP PHP以其简单易学的特点,以及敏捷开发的优势,从一个几乎不被人知的开源项目,慢慢成长为技术人员首选的动态Web设计工具,与其他语言相比,PHP表现得更好.更快.更简单易学.尽 ...
- 《细说PHP》 第四版 样章 第二章 PHP的应用与发展 4
2.4 PHP的发展 最初创建时,PHP是一个简单的用Perl语言编写的程序,只是为了统计自己的网站有多少访问者.后来又用C语言重新编写,多年来,PHP经过无数开源贡献者的不断迭代,历经数个版本,已 ...
随机推荐
- Troubleshooting: High Version Count Issues
--查询版本高的原因 select * from v$sql_shared_cursor where sql_id=''; Configuring Download the script in the ...
- InnoDB On-Disk Structures(二)--Indexes (转载)
转载.节选于 https://dev.mysql.com/doc/refman/8.0/en/innodb-indexes.html This section covers topics relate ...
- 《软件安装》VMware 安装 centos8
上期问题回顾 搞技术的同学应该都听过docker,那么请问docker和虚拟机有什么区别呢? 传统的虚拟机架构是:物理机 -> 宿主机操作系统 -> Hypervisor支持 -> ...
- 常用注解解析(因为不太明白@component和@configuration写了)
1.@controller 控制器(注入服务) 用于标注控制层,相当于struts中的action层 2.@service 服务(注入dao) 用于标注服务层,主要用来进行业务的逻辑处理 3.@rep ...
- Hyperledger Fabric相关文件解析
1相关文件说明 这一部分涉及相关配置文件的解析, 网络的启动涉及到多个文件,本文按以下顺序进行分析: . ├── base │ ├── docker-compose-base.yaml #1 │ ...
- Python 从入门到进阶之路(三)
在之前的文章我们介绍了一下 Python 中 if while for 的使用,本章我们来看一下 Python 中的变量类型. 在 Python 定义变量时的规则是 变量名 = 变量 ,Python ...
- Vue 从入门到进阶之路(十三)
之前的文章我们介绍了一下 vue 中的作用域插槽,本章我们来看一下动态组件与 v-once 指令. <!DOCTYPE html> <html lang="en" ...
- Docker 系列之 常用镜像
Ubuntu 实战 操作 # 拉取 18.04 版本的 Ubuntu 镜像 docker pull ubuntu:latest # 以交互方式运行并进入 ubuntu 容器环境 docker run ...
- maven配置阿里云仓库镜像
全局配置 修改settting文件 在mirrors标签下添加子节点. <mirror> <id>nexus-aliyun</id> <mirrorOf> ...
- Java 中 PO 与 VO 的区别
什么是PO PO(Persistence Object 持久化对象)是直接跟持久层数据库打交道的java Bean (model,entity,bean等叫法都是可以的),里面除了私有的成员变量之外, ...