TODO
TODO恳切地希望得到大家的使用反馈......
[*]考虑空字符串作为缺省模块的问题,是否选用其他字符串,是否过滤空字符串作为模块?[*]继续整理代码;[*]使用栈代替某些动态内存分配;[*]使用全局存储代替某些模块级别的存储;[*]跨web服务器问题(暂时只在Apache上测过);[*]是否需要实现输出控制?主要是使用ob扩展的函数;[*]实现更多的路由方式,比如支持正则表达式;[*]实现面向过程的分发方式;[*]提供简化高效好用的模版引擎?[*]等php5.3出来以后,使用其中的命名空间机制;[*]增加扩展依赖关系的处理;[*]是否提供对循环forward的检测?[*]是否增加管道方式的forward?现用函数调用方式;[*]是否在控制器类和监听器类中设置标志,以便可以每次调用都新建实例?[*]提供路由或分发失败时转向某处的设置?[*]配置文件中可以设置更多的选项?[*]支持站点中的“子配置文件”?
php_kiss.dll
编译于windows XP pro SP2 平台,使用 VC++ 6.0。 考虑良久,感觉锁定缺省模块为空字符串比较好,
http://test/ 比 http://test/default 更容易识别为缺省模块(全局),
反之,容易让人迷惑,而且程序也可能产生行为不一致的结果。
所以,以后会关闭对缺省模块的设置??? 失业了,以后上网就不定期了。。。
谁能给俺一份工作。。。现在上海虹口区。。。
mobile: F1 F3 F6 F4 F1 F8 F1 F2 F4 F5 F3
[ 本帖最后由 hshq_cn 于 2008-1-28 17:43 编辑 ]
v0.2.4
fixed:不可设置缺省模块名,固定为DEFAULT_MODULE-"";
kiss_status(),某些设定不可设为空字符串:
cli_root,default_ctl,default_act,并且加强检查;
解决站点主页url的bug;
修改了路由函数中对uri的解析;
打开-Wall, -edantic,修正不规范的语法;
kiss_status()内宏参数与变量冲突;
ext_path:由NULL变为URI_EXT-""。
kiss - v0.3.5
kiss - v0.3.5fixed:
整理代码:
const化某些指针参数;
使用栈代替某些动态内存分配,因此限制了一些字符串的长度;
不再使用文件kiss_inner.c;
功能:
增加缓冲支持,缺省开启;
增加kiss_redirect_ex(),不会立刻退出;
常量KISS_STATUS_USE_CACHE改为KISS_STATUS_USE_BUF;
增加异常代码相关的常量KISS_E_HEADSENT和KISS_E_BUFFER,暂未使用;
CLI模式,如果没有设置KISS_STATUS_CLI_ROOT,将使用当前工作目录;
实现面向过程的分发方式-函数
命名规则:Controller+Action+Postfix;
面向过程分发的监听器-函数命名规则:文件主名_(preDispatch|postDispatch);
使用全局存储代替原来的模块级别存储,例如配置文件中的配置内容;
可使用PHP4兼容的构造函数命名方式;
增加类Kiss(final),其中包含全部可用函数(public static final)和常量,例如:
kiss_cli_test => Kiss::cliTest,KISS_STATUS_USE_BUF => Kiss::STATUS_USE_BUF;
修正:
使kiss_set_rule()处理缺省模块的方式与配置文件中的相一致;
kiss_eval()对于KISS_EVAL也进行文件可读性判断的bug;
kiss_redirect()增加检查header是否已经发出,清空缓冲(如启用),
且成功则立刻退出脚本运行(此时返回值不可用);
分发失败时重复抛出异常造成内存泄露;
加载控制器文件后检测所需的控制器类是否成功加载;
在forward链中,相同的分发后监听器都在第一个拥有它的Action处执行(之前是最后一个);
修改内部函数kiss_eval(),解决调用成功后立刻抛出异常会导致段错误的bug; 正在考虑一种简便易用的模板引擎,希望大家多提建议。。。 东西不错,就是名字不怎么好 好久没在 CU 的 PHP 版看到有深度的帖子了。
楼主的出发点是好的,但是我个人认为完全用扩展的形式来实现一个框架成本太高。
我想更合理的方式是针对框架中特定的功能以扩展的形式实现,从而在开发成本和运行效率之间取得平衡。 不支持楼主,对不住自己的良心。
个人很喜欢,我只需要mvc+路由功能即可:)