用Php扩展实现的简单框架1
来源:互联网 发布:中国单挑全世界知乎 编辑:程序博客网 时间:2024/06/05 20:16
代码简介:
- 我使用php v5.2.3,主要在64位的Ubuntu 7.10中开发,使用Apache 2.2.4,Php编译为Apache的模块;
- 同时在Windows XP Pro中使用VC6编译成功并测试可用;
- 由于不会用libtool,所以不知道如何将代码拆分到多个文件编译,请不要见笑我的代码管理方式^_^;
- 代码文件:
- php_kiss.h - 模块头文件;
- kiss.c - Php扩展相关代码;
- kiss_inner.c - 实现基本功能,为kiss.c所#include;
- kiss_const.c - 声明了太多的Php常量及相关macro,所以单放在此,为kiss.c所#include;
php_kiss.h:
#ifndef PHP_KISS_H
#define PHP_KISS_H
extern zend_module_entry kiss_module_entry;
#define phpext_kiss_ptr &kiss_module_entry
/** ... */
#ifdef ZTS
#define KISS_G(v) TSRMG(kiss_globals_id, zend_kiss_globals *, v)
extern int kiss_globals_id;
#else
#define KISS_G(v) (kiss_globals.v)
extern zend_kiss_globals kiss_globals;
#endif
#ifdef ZTS
#include "TSRM.h"
#endif
#define KISS_VERSION "0.1"
#define PHP_EXT ".php"
#define CLASS_EXT "Controller"
#define ACTION_EXT "Action"
#define DEFAULT_MODULE ""
#define DEFAULT_CONTROLLER "index"
#define DEFAULT_ACTION "index"
/** ... */
static PHP_FUNCTION(kiss_eval);
static PHP_FUNCTION(kiss_status);
static PHP_FUNCTION(kiss_set_rule);
static PHP_FUNCTION(kiss_clear_rules);
static PHP_FUNCTION(kiss_front_start);
static PHP_FUNCTION(kiss_set_listener);
static PHP_FUNCTION(kiss_forward);
static PHP_FUNCTION(kiss_redirect);
static PHP_FUNCTION(kiss_request_query);
static PHP_FUNCTION(kiss_request_post);
static PHP_FUNCTION(kiss_request_params);
static PHP_FUNCTION(kiss_request_get);/** ... */
ZEND_BEGIN_MODULE_GLOBALS(kiss)
/** life cycle: module */
char dir_sep;
char * cfg_file;
zend_bool cfg_inited;
HashTable hosts_rw; // TODO: 以后使用持久存储或者系统分配内存,以使用全局数据。
HashTable hosts_ls; // TODO: 以后使用持久存储或者系统分配内存,以使用全局数据。
zend_class_entry * action_ce;
zend_class_entry * listener_ce;
/* life cycle: request */
kiss_status * status;
zval * obj_cache;
zval * ls_called;
zval * ls_pre_disp;
zval * ls_post_disp;
kiss_request * request; // TODO: 考虑模块启动时候申请内存
// kiss_response * response; // TODO: 考虑模块启动时候申请内存
ZEND_END_MODULE_GLOBALS(kiss)
#endif /* PHP_KISS_H */
- 用Php扩展实现的简单框架1
- PHP扩展实现的简单MVC框架
- 用Php扩展实现的简单框架 - 3
- 用Php扩展实现的简单框架 - 4
- 用Php扩展实现的简单框架 - 5
- 用Php扩展实现的简单框架 - 6 - 使用示例
- 用Php扩展实现的简单框架 - 7 - v0.2
- PHP扩展开发-写一个简单的框架
- PHP MVC 框架的简单实现参考
- php实现MVC框架的简单实例
- PHP的MVC框架简单实现
- 一个简单的PHP扩展
- 简单php框架的试作(1)
- php实现的一个简单json rpc框架实例
- PHP的扩展框架之Phalcon初探
- 【php框架学习】最简单的php mvc 模型框架实现
- php 框架扩展类
- PHP 开发框架扩展
- 天涯从此寂寞
- java到底学什么??
- cookie概述
- 编写PHP扩展三步曲之一
- .Net中的反射 (转)
- 用Php扩展实现的简单框架1
- Artm-Analyzer Toolkits统计分析组件包共享版发布
- 2.5 限定符(4)
- 被遗忘的四个Javascript正则替换规则
- (C#)利用反射动态调用类成员[转载]
- 用Php扩展实现的简单框架 - 3
- shoutcast 例子分析
- 单向链表建立 排序
- 谈基于.Net平台开发中的模式窗体