msgbartop
PHP语言, PHP扩展, Zend引擎相关的研究,技术,新闻分享 – 左手代码 右手诗
msgbarbottom

16 Aug 08 扩展PHP[Extending PHP](一)

这篇文章将会系统的介绍如何开发自己的PHP扩展, 也许你会说,网上这样的文章已经很多了,为什么还要写? 呵呵,我当然不会只是简单的重复。 这篇文章将会涉及到很多的高级技术,比如在自己的扩展中使用资源,开发一个类给脚本使用,在PHP中使用C++的对象等等,另外这篇文章还会穿插很多Zend引擎和PHP内核的知识,比如变量的实现,资源的实现,PHP4和PHP5对类的不同实现等等

15 Aug 08 PHP Life Cycle演讲幻灯片(PHP Life Cycle Slides)

作为一个PHPer,你知道你的代码最终是怎么样被执行的么?
你知道从一个请求的发起,到最后的得到结果,经过了那些步骤么?
你知道Zend虚拟机是什么么?
你知道PHP是怎么和Apache整合的么?

呵呵,我来解答:

这是我上次给同事们做演讲的时候的PPT, 具体演讲内容等我回头整理了再放上来。
点击查看 PHP Life Cycle

15 Aug 08 PHP 源代码分析 V0.0.2

做为我以后乱写的一个指导方针。呵呵
PHP 源代码分析目录

1. 第一章 构建系统 准备工具、库及需要具备的基础知识;
2. 如何编译不同平台的版本?编译时的各个选项是什么含义?
3. 如何创建一个 PHP 扩展/模块?如何创建一个 Zend 扩展?
4. 如何调试 PHP?如何调试 PHP/Zend 扩展?

1. 第二章 PHP 与 SAPI 的生命周期 脚本的运行周期
2. 模块/脚本的起始与终止函数; …

14 Aug 08 实现PHP的编译执行分离(separating compilation and execution)

刚刚在PHP群内和大家聊天,应承了大家要写一个关于如何实现PHP源码加密的文章, 借着这会QA在冒烟的机会,就这个问题,我写点思路….

12 Aug 08 深入理解Zend SAPIs(Zend SAPI Internals)

SAPI: Server abstraction API,研究过PHP架构的同学应该知道这个东东的重要性,它提供了一个接口,使得PHP可以和其他应用进行交互数据。 本文不会详细介绍PHP的每个SAPI,只是针对最简单的CGI SAPI,来说明SAPI的机制…

12 Aug 08 深入理解PHP原理之函数(Introspecting PHP Function)

在PHP中,函数分为俩种,

  • 一种是zend_internal_function, 这种函数是由扩展或者Zend/PHP内核提供的,用’C/C++’编写的,可以直接执行的函数。
  • 另外一种是zend_user_function, 这种函数呢,就是我们经常在见的,用户在PHP脚本中定义的函数,这种函数最终会被ZE翻译成opcode array来执行
  • 本文介绍了这俩中函数在ZE层面的不同点

    11 Aug 08 深入浅出PHP(Exploring PHP)

    横观国内的PHP现状,一直以来,很少有专门介绍PHP内部机制的书。
    对于Zend引擎,PHP扩展开发等相关的知识,中文资料很少。
    呵呵,鉴于此:
    我会随时记录下研究的心得,希望有机会的时候,可以汇总成书。:)

    03 Aug 08 揭秘TSRM(Introspecting TSRM)

    如果你曾经做过PHP的扩展,或者研究过PHP的源码,你就会看到这个东西到处都在。但是关于这个东西是什么,却鲜有资料叙及。

    对于这个东西是什么,最常见的回答就是“你不用关心这个是什么,你只要在‘这里’‘那里’用上就是了,如果编译器告诉你缺少tsrm_ls,加上就好了 ”。这个答案虽然是一种很敷衍的回答,但其实也是有一定道理的,因为Zend Engine把这个宏搞的太复杂,并且对于一个初学PHP扩展的开发者来说,了解它是什么也没有太大的益处。
    而我是一个喜欢追根究底的人。所以,如果你现在刚好比较闲,并有耐性了解这个东西是什么,那么就请继续读下去…

    24 Jul 08 Apache启动过程(PHP_MINIT_FUNCTION的调用)

    一封通信记录。关于Apache的启动过程的分析。

    18 Jun 08 深入理解PHP原理之Opcodes

    最近要给Yahoo的同事们做一个关于PHP和Apache处理请求的内部机制的讲座,刚好写了些关于Opcodes的文字,就发上来了,这个文章基于 Sara Golemon的 Understanding OPcode

    Pages:  1 2 3 4 5 6 7 8 9