《细说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经过无数开源贡献者的不断迭代,历经数个版本,已 ...
随机推荐
- Unity3D 截取6面图 做全景图脚本
using System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine; publi ...
- leetcode题解:整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出 ...
- robotframework框架 - 在Pycharm当中编写RobotFramework测试用例
众所周知,pycharm是个写python极好用的编辑器.也可以装很多的插件来完成各种骚操作. 某一天,心血来潮在pycharm的插件库里,搜索了一下robot,恩,发现有支持robotframewo ...
- linux之任务调度,磁盘分区,yum下载
一.crond任务调度 调度机制: 基本语法 crontab [选项] -e : bianji crontab定时任务 -l : 查询crontab -r : 删除当前用户所有的crontab任务 例 ...
- 上手OrangePi Zero+
一.安装系统 所需材料:系统镜像文件.镜像烧录工具.至少2G的内存卡(推荐8G以上).读卡器 1.下载系统镜像 官方系统下载地址,由于官方系统更新截止到17年,所以我选择的是Armbian系统.下载地 ...
- C++继承产生的问题
今天写代码,用到了继承,忘了将父类中的私有成员改为protected,结果一调用父类地函数后,子类中的root指针直接变为了父类中的空的root.私有成员在继承后依然会保留,占一定的内存空间,但却没有 ...
- String对象及正则表达式
1,String和string还是有区别的,一个就是用双引号或单引号包括起来的数据就是字符串,另一个本质是数组多个字符串组成的只读字符数组: 2,你说string他是数组吧,他和数组还是有点区别的,他 ...
- 【docker构建】基于docker搭建redis数据库缓存服务
搭建redis服务 首先拉取镜像==>运行镜像为容器 # 先搜索下redis镜像 [root@VM_0_10_centos wordpress]# docker search redis # 拉 ...
- python - 操作excel表格
说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...
- [错误]Caused by: org.apache.spark.memory.SparkOutOfMemoryError: Unable to acquire 65536 bytes of memory, got 0
今天,在运行Spark SQL代码的时候,遇到了以下错误: Caused by: org.apache.spark.SparkException: Job aborted due to stage f ...