CODE, ARCHITECTURE & AI

TIPI.

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

PHP内核中的异常基类

PHP内核中的异常基类 在 <<思考PHP语言三:异常处理>> 中有说到异常的定义:异常处理是指在语言中能够使程序按照一种标准的方法对于某些运行时错误和其他程序所检测到的异常事件做出反应。异常发生的时间是不可以确定的,如果一种语言不包括异常处理机制,这就会给语言带来额外的复杂性。对于异常的处理有三种方案,而PHP5使用的是将一个异常处理独立出来,作为专门的子…
继续阅读 ↗

PHP变量的CV类型

PHP变量的CV类型 在我们使用VLD扩展查看PHP生成的中间代码时,经常会看到有这样一项:compiled vars: !0 = $a,或者如果使用更加详细的 -dvld.verbosity=3参数,会看到IS_CV,IS_VAR等类型。这里所说的Compiled vars和IS_CV都与今天我们所要了解的CV类型有莫大的关系。 CV者,Compiled …
继续阅读 ↗

PHP执行过程中的数据

PHP脚本在内核中一般会经过词法解析,语法解析、编译生成中间代码,执行中间代码这样四个大的步骤。其中,第四个步骤,执行中间代码PHP内核默认情况下是通过zend/zend_vm_execute.h文件中的execute函数调用执行完成,对于所有的中间代码,默认实现是以按顺序执行,当遇到函数等情况时跳出去执行,执行完后再回到跳出的位置继续执行。 与过程相比,过…
继续阅读 ↗

PHP的语法分析器-Bison入门

Bison是一种通用目的的分析器生成器。它将LALR(1)上下文无关文法的描述转化成分析该文法的C程序。 使用它可以生成解释器,编译器,协议实现等多种程序。 Bison向上兼容Yacc,所有书写正确的Yacc语法都应该可以不加修改地在Bison下工作。 它不但与Yacc兼容还具有许多Yacc不具备的特性。 Bison分析器文件是定义了名为yyparse并且实…
继续阅读 ↗

TIPI第六章发布

人生在世,如身处荆棘之中!心不动,人不妄动,不动则不伤。如心动,则人妄动,伤其身,痛其骨,于是体会到世间诸般痛苦。 选择在这个宜嫁娶、宜开光、宜安床的日子里,我们将第六章发布了。 没有华丽的出场,只有深夜的辗转,我们在努力。 虽然过程中有一些纷纷扰扰,但是经历了风雨的彩虹会更加美丽。 这次发布更新的主要内容有: 新增加第六章内存管理 增加CHM格式的支持 部…
继续阅读 ↗

TIPI儿童节版发布

少年智则国智,少年富则国富,少年强则国强,少年独立则国独立,少年自由则国自由,少年进步则国进步...... 各位自认为是儿童的,不是儿童的;扮萌的或已成为大叔的同学,儿童节快乐! TIPI团队 选择在这个应该纯粹一点的节日里,发布努力了两个月的成果。 自最近一次的版本发布(2011-04-01)以来,关注的同学可能会注意到网站上 没有新的变化,其实这段时间我…
继续阅读 ↗

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可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。…
继续阅读 ↗