zend_execute: op执行过程详解
解释器引擎最终执行op的函数是zend_execute,实际上zend_execute是一个函数指针,在引擎初始化的时候zend_execute默认指向了execute,这个execute定义在{PHPSRC}/Zend/zend_vm_execute.h: ZEND_API void execute(zend_op_array *op_array TSRMLS_DC)...
View Article守护进程为啥fork二次
php守护进程http server <?php /** * A PHP socket server demo file. * * @author Asika * @email asika@asikart.com * @date 2013-10-12 * * @copyright Copyright (C) 2013 - Asika. * @license GNU General Public...
View Articlephp 扩展基础知识
1. 符号表 EG() 这个宏可以用来访问符号表,函数,资源信息和常量。 CG() 用来访问核心全局变量。 PG() PHP全局变量。我们知道php.ini会映射一个或者多个PHP全局结构。举几个 使用这个宏的例子:PG(register_globals),PG(safe_mode), PG(memory_limit) FG() 文件全局变量。大多数文件I/O或相关的全局变量的数据流都塞进标准扩展...
View ArticlePHP扩展:写时复制机制
$a = 1; $b = $a; $b += 5; 从代码逻辑来看,我们希望语句执行后$a仍然是1,而$b则需要变成6。我们知道在第二句完成后内核通过让$a和$b共享一个zval结构来达到节省内存的目的,但是现在第三句来了,这时$b的改变应该怎样在内核中实现呢?...
View ArticlePHP扩展:hashtable
一、添加 int zend_hash_init( HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent ); zend_hash_init(&EG(symbol_table), 50, NULL, ZVAL_PTR_DTOR, 0);...
View Articlephp扩展 实例开发
h1. 一、自动化建立扩展框架 到源码ext目录下 ./ext_skel --extname=xiami_ext 生成如下几个文件文件列表: * CREDITS * EXPERIMENTAL * config.m4 * config.w32 * php_xiami_ext.h * tests * xiami_ext.c * xiami_ext.php...
View ArticleRPC框架
RPC是Remote Procedure Call的缩写 Procedure就是function的另类写法,RPC就是在本地调用远程服务器上的一个function,仅此而已。 RPC有多种协议。SOAP是HTTP+XML base的RPC protocol。Thrift是binary的RPC protocol。...
View ArticleSOA的浅析
曾今SOA的概念犹如今日“云计算、大数据”一样,被炒得火热,不少企业便纷纷响应,并宣称会拥抱和实施SOA。而事实上,业界出现了两种极端:一种是由于各类文章和书籍关于SOA的描述往往太过抽象,再加上各大厂商的呼吁,使得SOA往往显得“高大上”,令不少企业和架构师们望而却步。第二种恰好相反,有部分人却认为SOA无非是“新瓶装旧酒”。...
View Article最全的php.curl参数详解
PHP中的CURL函数库(Client URL Library Function) curl_close – 关闭一个curl会话 curl_copy_handle – 拷贝一个curl连接资源的所有内容和参数 curl_errno – 返回一个包含当前会话错误信息的数字编号 curl_error – 返回一个包含当前会话错误信息的字符串 curl_exec – 执行一个curl会话...
View ArticleSpring @Autowired,@Resource,@Required注解的用法和作用
@Autowired的用法和作用 这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。 <bean id=”userDao”class=”…”/> <bean id=”userService”class=”…”> <property name=”userDao”> <ref...
View Article