外链论坛

 找回密码
 立即注册
搜索
查看: 29|回复: 2

技术达人谈PHP底层工作原理

[复制链接]

3086

主题

3万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098780
发表于 2024-10-4 19:39:16 | 显示全部楼层 |阅读模式

 

奋斗向上的开拓,才使弯曲的竹鞭化作了笔直的毛竹。

帮忙你练脑子的规律思维题:

芯片测试:有2k块芯片,已知好芯片比坏芯片多.请设计算法从其中找出一片 好芯片,说明你所用的比较次数上限. 其中:好芯片和其它芯片比较时,能正确给出另一起芯片是好还是坏. 坏芯片和其它芯片比较时,会随机的给出好或是坏。 

答案将会颁布在下一期的文案里 (听说长得帅气的都做出来了)

上一期的答案颁布

1. 天平一边放7 2=9克砝码,另一边放9克盐。 2. 天平一边放7克砝码和刚才得到的9克盐,另一边放16克盐。 3. 天平一边放刚才得到的16克盐和再刚才得到的9克盐,另一边放25克盐。 

(你答对了吗?

今天推送一首我个人很爱好的歌手组合,她们是以说唱出名的,节奏很轻快,尤其是说唱部分,期盼今天你们能有好心情哦~

IT短资讯时间:

针对一个品牌来讲,品牌颜色不仅持有辨识度,更拥有表率性,因此呢厂商们常常爱好在员工定制服装上做花招长时间保持颜色的一致会让用户很容易记住它。

曾经网上流传了这么一个段子:冬天又来了,又穿起了五颜六色的冲锋衣,她们为这个灰暗的冬天增光增彩,红的像百度外卖,黄的像美团,蓝的像饿了么...

近期,网络上揭发了顺丰为员工定制的耐克工装,工装中的耐克logo和顺丰SF Logo上下叫作,毫无违和感,乃至很容易让你联想到这是一件耐克联名款的新服装。

                                              照片源自:it之家

另一,耐克工装还采用了Shield面料,具备防风雨性质,更适合顺丰小哥这种风吹雨淋的工作环境。Shield面料的耐克冲锋衣并不方便宜,价格大多已然超过1000元。

日前顺丰耐克联名工装已然在部分地区发配给员工。

技术达人谈PHP底层工作原理

A BEAUTIFUL SPRING

近期搭建服务器,忽然感觉lamp之间到底是怎么工作的,是怎么联系起来?平时只是写程序,重来思考过她们之间的工作原理:

PHP底层工作原理

图1 php结构

从图上能够看出,php从下到上是一个4层体系

①Zend引擎

Zend整体用纯c实现,是php的内核部分,它将php代码翻译(词法、语法解析等一系列编译过程)为可执行opcode的处理并实现相应的处理办法、实现了基本的数据结构(如hashtable、oo)、内存分配及管理、供给了相应的api办法外边调用,是一切的核心,所有的外围功能均围绕zend实现。

②Extensions

围绕着zend引擎,extensions经过组件式的方式供给各样基本服务,咱们平常各样内置函数(如array系列)、标准库等都是经过extension来实现,用户能够按照需要实现自己的extension以达到功能扩展、性能优化等目的(如贴吧正在运用的php中间层、富文本解析便是extension的典型应用)。

③Sapi

Sapi全叫作是Server Application Programming Interface,便是服务端应用编程接口,sapi经过一系列钩子函数,使得php能够和外围交互数据,这是php非常优雅和成功的一个设计,经过sapi成功的将php本身和上层应用解耦隔离,php能够再也不思虑怎样针对区别应用进行兼容,而应用本身能够针对自己的特点实现区别的处理方式。后面将在sapi章节中间商

④上层应用

便是咱们平时编写的php程序,经过区别的sapi方式得到各样各样的应用模式,如经过webserver实现web应用、在命令行下以脚本方式运行等等。

构架思想:

引擎(Zend)+组件(ext)的模式降低内部耦合

中间层(sapi)隔绝web server和php

**************************************************************************

倘若php是一辆车,那样

车的框架便是php本身

Zend是车的引擎(发动机)

Ext下面的各样组件便是车的轮子

Sapi能够看做是公路,车能够跑在区别类型的公路上

而一次php程序的执行便是汽车跑在公路上。

因此呢咱们需要:性能优异的引擎+合适的车轮+正确的跑道

Apache和php的关系

Apache针对php的解析,便是经过众多Module中的php Module来完成的。

把php最后集成到Apache系统中,还需要对Apache进行有些必要的设置。这儿咱们就以php的mod_php5 SAPI运行模式为例进行讲解,至于SAPI这个概念后面咱们还会仔细讲解。

假定咱们安装的版本是Apache2 和 Php5,那样需要编辑Apache的主配置文件http.conf,在其中加入下面的几行内容:

Unix/Linux环境下:

LoadModule php5_module modules/mod_php5.so

AddType application/x-httpd-php .php

注:其中modules/mod_php5.so 是X系统环境下mod_php5.so文件的安装位置。

Windows环境下:

LoadModule php5_module d:/php/php5apache2.dll

AddType application/x-httpd-php .php

注:其中d:/php/php5apache2.dll 是在Windows环境下php5apache2.dll文件的安装位置。

这两项配置便是告诉Apache Server,以后收到的Url用户请求,凡是以php做为后缀,就需要调用php5_module模块(mod_php5.so/ php5apache2.dll)进行处理。

Apache的生命周期

Apach的请求处理流程

Apache请求处理循环详解

Apache请求处理循环的11个周期都做了那些事情呢?

1、Post-Read-Request周期

在正常请求处理流程中,这是模块能够插进钩子的第1周期针对哪些想很早进入处理请求的模块来讲,这个周期能够被利用。

2、URI Translation周期

Apache在本周期重点工作:将请求的URL映射到本地文件系统。模块能够在这周期插进钩子,执行自己的映射规律。mod_alias便是利用这个周期工作的。

3、Header Parsing周期

Apache在本周期重点工作:检测请求的头部。因为模块能够在请求处理流程的任何一个点上执行检测请求头部的任务,因此呢这个钩子很少被运用。mod_setenvif便是利用这个周期工作的。

4、Access Control周期

Apache在本周期重点工作:按照配置文件检测是不是准许拜访请求的资源。Apache的标准规律实现了准许和拒绝指令。mod_authz_host便是利用这个周期工作的。

5、Authentication周期

Apache在本周期重点工作:根据配置文件设定的策略对用户进行认证,并设定用户名区域。模块能够在这周期插进钩子,实现一个认证办法

6、Authorization周期

Apache在本周期重点工作:按照配置文件检测是不是准许认证过的用户执行请求的操作。模块能够在这周期插进钩子,实现一个用户权限管理的办法

7、MIME Type Checking周期

Apache在本周期重点工作:按照请求资源的MIME类型的关联规则,判定将要运用的内容处理函数。标准模块mod_negotiation和mod_mime实现了这个钩子。

8、FixUp周期

这是一个通用的周期准许模块在内容生成器之前,运行任何必要的处理流程。和Post_Read_Request类似,这是一个能够捕捉任何信息的钩子,是最常运用的钩子。

9、Response周期

Apache在本周期重点工作:生成返回客户端的内容,负责给客户端发送一个恰当的回复。这个周期全部处理流程的核心部分。

十、Logging周期

Apache在本周期重点工作:在回复已然发送给客户端之后记录事务。模块可能修改替换Apache的标准日志记录。

11、CleanUp周期

Apache在本周期重点工作:清理这次请求事务处理完成之后遗留的环境,例如文件、目录的处理Socket的关闭等等,这是Apache一次请求处理的最后一个周期

LAMP架构:

从下往上四层:

①liunx 属于操作系统的底层

②apache服务器,属于次服务器,沟通linux和PHP

③php:属于服务端编程语言,经过php_module 模块 和apache相关

④mysql和其他web服务:属于应用服务,经过PHP的Extensions外 挂模块和mysql相关

Android系统架构图

lamp和安卓的架构图比较一下,貌似和lamp架构有点类似自己不懂安卓,只是感觉上有点类似能手能够指出区别,小弟这里不堪感谢

从上往下:

安卓架构--------------说明--------LAMP架构

1.应用程序 --------详细应用--------web应用

2.应用程序框架 ----java-------------PHP语言和库

3.系统运行库 :----虚拟机---------WEB服务器

⒋Linux 内核 :---操作系统-------lamp架构中的L

倘若你有针对公众号好的意见能够信息博主倘若采纳了会给出资料奖励的哟~感谢你的支持!

六星教育公开课正式开课啦!想要继续学习的朋友,记得夜晚来听课哦,有宝贵视频赠送。

今晚课程预告:(参与途径点击阅读原文,登录QQ免费报名就可

课题:

PHP高级程序员面试必须技术,路由原理剖析,API封装

知识点:

PHP高级程序员面试必须技术,路由原理剖析,API封装

讲师:

六星教育技术总监--Page老师

长按二维码

关注咱们

阅读原文登录自己的QQ号,点击立即报名就可免费跟着咱们学习从PHP基本微X研发、支付接口、tp5、laravel项目实战、swoole扩展、redis高并发、队列任务等技术,周一到周六,夜晚八点半不见不散! 





上一篇:[精选] php是怎么样工作的呢?它的生命周期是怎么样的呢?
下一篇:Nginx 是怎么禁止拜访php的 ?
回复

使用道具 举报

3044

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109054
发表于 2024-11-3 07:12:55 | 显示全部楼层
大势所趋,用于讽刺一些制作目的就是为了跟风玩梗,博取眼球的作品。
回复

使用道具 举报

3059

主题

3万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99139058
发表于 2024-11-9 02:37:22 | 显示全部楼层
你的留言真是温暖如春,让我感受到了无尽的支持与鼓励。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-22 11:39 , Processed in 0.134401 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.