文件名称:ChineseFramework大型WEB应用框架程序
文件大小:896KB
文件格式:RAR
更新时间:2007-07-28 17:46:40
另类其它
技术特点及优势:
1. 框架没有和实现混在一起. 我发这个里面的实现只是一个例子. 让大家知道如何调用..
2. 关于不好向PHP5移植, 我从没想过要移植到PHP5上. 因为如果要移值, 你敢说你的框架不要改..
恐怕要改的也不在少数.就算你勉强凑合着用上了, PHP5的新功能都没有加上, 你所谓的移植还有
什么意义啊.
3. 异常处理部分, 你说和返回值没有区别, 说明你还没有仔细看这个异常.. 这个异常可以跨函数,
几层函数调用后也照样没问题. 另外, 可以返回一些其它的附加信息. 最最最最最重要的是, 你可
以自定义异常类来捕获.
假如: YourException extends Exception 你捕获 catch( YourException ) 时如果发
生的是Exception类时, 程序就会捕捉不到.. 反之, 如果发生了YourException, 而程序捕获
的是catch( Exception )时, 则能捕获到.. 因为所有异常继承自Exception就是也能像语言级
异常处理一样, 可以做到一个默认处理..
4.
1) 数据库处理的优势, 框架中抽象出一个Abstract Database(数据库抽象层)出来, 使得上层不
用关心底层数据库, 而由些层完成一系统转换. pfcDB在此基础上进行数据库操作.
2) pfcTable类, 此类可以使得你在程序中在大多时间不需要输入SQL语句(除非包含很
复杂的很多函数的语句或针对某种数据库平台的语句)即可完成对数据库的操作.. 如选择, 插入, 更
新, 删除等, 选择时可以对多表进行关联, 并可选left join, right join, inner join 等多
种联接方式.
对于选择出的结果可以以多种形式返回, 如二维表格(MapResult), 以某一列为键的
二维表格(MapResultOnKey), 单一行(MapOneRow), 单一列(MapOneColumn), 某列为键, 某列
为值的哈希表(MapHashTable) 等多种形式..
插入和修改时, 程序自动决定SQL语句形式, 并可以自动根据字段类型决定是否使用引号包裹字
段内空(如果设置了欢迎,默认), 是否自动对特殊字符进行转义(防SQL Inject, 可设置是否开启,
默认为关). 并支持多种参数形式, 如键为字段名, 数组值为字段值的PHP数组, 如:
array(
field1 => xxx,
field2 => xxx2,
)
也可是设置好的字段($tblObj->setFields(array( field1 , field2 ))
$tblObj->insert(array(xxx, xxx2));
3) 数据单一记录抽象. 为那些对于某字段有一个可以唯一确定的键的记录的访问提供了方便的途径
使用本类可以方便的对单一记录进行读取, 修改等..使用举例:
$item = new pfcRecord($dbObj, table1 , Name , 帅的像人渣 );
echo $item->get( Favorite );
$item->set( Favorite , make .... );
$item->set( Name , zhazha );
$item->commit();
if($e = catch( SQLException ))
{
echo 发生成错误:
. $e->GetErrorText();
if(defined( debug )) echo
SQL: . $e->getSqlSegment();
}
else echo 修改成功 ;
5. 输入输出封装. pfcInputStream, pfcOutputStream. 从底层实现对输入输出管理, 再也不用
再也不用关心是否开启了register_global. 统计一使用各种变量(也有办法区分具体是GET还是
POST,COOKIE, SESSION等.), 并且不用关心是否启用了 magic_quotes_gpc. 程序会自动处理.
不用怕用户输入非法了.为你打造一个安全的程序提供一个安全的环境. 输出由于采用了pfcOutputStrem 类进行封装, 再也不怕不小心出
现在header之前进行输出了.(没经过本类的不算)
并可在输出前进行可种处理. 如压缩(可手工用自己的算法或ob), 替换等操作.
使用举例:
$instream = new pfcInputStream();
$out = new pfcOutputStream();
$in = $instream->parse_incoming();
echo $in[ xxx ]; //取变量xxx, 无论GET, POST, COOKIE, SESSION或文件
echo $in[ _GET ][ xxx ]; //取GET中的变量xxx, 依此类推. POST, COOKIE,
//SESSION, FILES等
$out->add_output( xxxx ); //添加一个串
$out->do_output(); //输出
//----------------------------------------------------------------
//其它可调用的方法(非必须)
//----------------------------------------------------------------
$out->get_content(); //取出当前缓冲区内容
$out->replace_keyword($arr); //对当前缓冲区内容进行替换.$arr格式为
// array( key => val , ....);
$out->clear_buffer(); //清空缓冲区
6. 多语言处理, 在底层做好了多语言处理的工作. 使得开发多语言程序时变的很easy.
7. 模板处理,采用新算法的模板处理类。 在数据量不是很大的页面中速度比PHPLIB快。 (<200)
支持自定义标记, 无限套嵌区块等.
8. 合理的文件组织管理, 使代码昼合理化、不重复、易移植。 模板、逻辑、实现、图片、基础类、UTIL类
分离。 并可改变位置(改变时改变相应常量)
9. 统一程序入口、逻辑实现分离 符合MVC模式。
10.合理的业务逻辑设计, 包括标准的添加,修改, 删除, 取一条数据, 取列表, 计算总数,transData
(对返回给UI层的数据进行转换)和untransData(对入库数据根据需要变换)能力。