CODE, ARCHITECTURE & AI

2011 年 01 月.

按时间重新翻阅,那些值得留下的文字。

12 篇记录保持好奇,慢慢积累

TIPI0203-PHP脚本的执行

在前面的章节介绍了PHP的生命周期,PHP的SAPI,这些内容都是处于上层的,在这个下面是对于PHP本身的解析和执行。这一小节我们介绍PHP脚本的执行。 目前的编程语言可以分为两大类: 第一类是像C/C++, .NET, Java之类的编译型语言, 它们的共性是: 运行之前必须对源代码进行编译,然后运行编译后的目标文件. 第二类比如:PHP, Javascr…
继续阅读 ↗

TIPI020203-FastCGI

FastCGI简介 什么是CGI CGI全称是“通用网关接口”(Common Gateway Interface), 它可以让一个客户端,从网页浏览器向执行在Web服务器上的程序,请求数据。 CGI描述了客户端和这个程序之间传输数据的一种标准。 CGI的一个目的是要独立于任何语言的,所以CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。…
继续阅读 ↗

TIPI020202-嵌入式PHP

从第一章中对PHP源码目录结构的介绍以及PHP生命周期章节中可以看出,嵌入式PHP类似CLI,是SAPI接口的另一种实现。 一般情况下,它的一个请求的生命周期也会和其它的SAPI一样:模块初始化=>请求初始化=>处理请求=>关闭请求=>关闭模块。当然,这只是理想情况。 但是嵌入式PHP的请求可能包括一段或多段代码,这就导致了嵌入式PHP的特殊性。 对于嵌入式…
继续阅读 ↗

TIPI020200-SAPI概述

前一小节介绍了PHP的生命周期, 所有的请求都是通过SAPI接口实现的. 在源码的SAPI目录存放了PHP对各种服务器抽象层的代码,例如命令行程序的实现, mod_php的apache模块实现以及fastcgi的实现等等. 在各个服务器抽象层之间遵守着相同的约定,这里我们称之为SAPI接口。每个服务器都需要实现各自己的_sapi_module_struct结…
继续阅读 ↗

TIPI0201–PHP生命周期和Zend引擎

一切的开始: SAPI接口 通常我们编写PHP Web程序都是通过Apache或者Nginx这类Web服务器来测试脚本. 或者在命令行下通过php程序来执行PHP脚本. 执行完成脚本后,服务器应答,浏览器显示应答信息,或者在命令结束后在标准输出显示内容. 我们很少关心PHP解释器在哪里. 虽然通过Web服务器和命令行程序执行 脚本看起来很不一样. 实际上她们…
继续阅读 ↗

安全?安全!安全!!

安全?安全!安全!! 在某日下班后,回家的路上,一个人走,走着走着,忽然我的手碰到了另一支手,艳遇?扭头!发现一新疆美男在左顾右盼。然而我背的包已经被拉开了一半。好险,我的kindle,钱包都在包里。 年关将近,是该注意安全了。特别是回家的路上,请各位兄弟照顾好贵重物品和老婆,防火防盗啊! 好吧,言归正转。我们还是说说我们在开发中的安全问题吧。 这里我们从一…
继续阅读 ↗

Yii框架中有点意思的文件缓存

Yii框架中有点意思的文件缓存 在Yii框架的framework/caching目录下是Yii框架的所有缓存操作。包括文件缓存,APC缓存、Db缓存,Memcache缓存等。 今天我们要说的是文件缓存。 【文件和类结构】 它总共包括CFileCache.php、CCache.php和接口文件。 缓存基类CCache抽象类实现了CApplicationComp…
继续阅读 ↗