`
hegz
  • 浏览: 442733 次
  • 性别: Icon_minigender_1
  • 来自: 茂名
社区版块
存档分类
最新评论

FleaPHP 1.0.70 开发进度汇报专贴

阅读更多

这个帖子虽然比较旧,但仔细找找,你很可能挖到金矿也不一定。

 

-----------x----------x---------x----->美丽分割线<-----x---------x----------x-------

 

这个帖子用来发布 1.0.70 的开发 进度情况。

1.0.70 beta 版已经发布,所有示例 均可正常运行

【SVN 仓库地址】
如果希望获得开发中的 1.0.70 代码 ,请使用下面的 SVN 地址:

svn ://svn.fleaphp.org/branch/1.0.70-dev/

【2007-05-15】
转眼间,一个月就过去了,这段时间因为工作繁忙,和编写文档 ,所以 FleaPHP 的代码没有什么大的改动,不过还是提供了一些新特征:


  • 增加 FLEA_Session_Db 类,提供将 session 保存到数据库 的能力

  • FLEA_Db_TableDataGateway 关联查询 加入对 limit 参数 的支持
  • FLEA_Db_TableDataGateway 增加了 saveRowset()、createRowset()、updateRowset() 和 replaceRowset() 方法
  • 新增的 FLEA_Db_TableDataGateway::findAllByPkvs() 可以查找以数组形式指定的主键值对应记录
  • FLEA_Db_TableDataGateway 构造函数 现在支持直接指定 primaryKey 属性
  • 修正 FLEA_Db_TableDataGateway::findAllByPkvs() 产生无效查询条件 的问题
  • 修正 FLEA_Db_TableDataGateway::updateByConditions() 总是返回 true 的问题,感谢 一地风飞 报告此问题
  • 修正 mysql 驱动 nextId() 在 _seq 表为空时不能返回键值的问题

  • FLEA_Controller _Action 增加了 __setDispatcher() 方法,以便设置 控制器 使用的调度器对象
  • 增加 FLEA_Controller_Action: _dispatcher
  • 简化 FLEA_Controller_Action 和 FLEA_Dispatcher_Simple 对请求参数的处理
  • 修正调用 FLEA_Controller_Action::_forward() 会导致出错的问题
  • 修正在 FLEA_Controller_Action 继承类构造函数中调用 $this->_getDispatcher() 无法获得调度器对象的问题
  • 增加了 FLEA_Dispatcher_Action::getUserRoles()

  • FLEA_Rbac _UsersManager 增加了 updatePasswordById() 方法,以便更新指定 ID 的用户密码
  • FLEA_Rbac_UsersManager 的 find 系列方法增加了 $fields 参数,以便指定要获取的字段

  • 针对 CGI 模式 安装的 PHP ,调整了 url () 函数
  • url() 现在支持一个新的参数:$bootstrap。该参数用于指定以什么文件 作为 URL 的入口文件
  • 新增的 detect_uri() 函数用于获得当前请求的 URL 地址
  • 修正 encode_url_args() 生成的 url 多了一个 & 的问题
  • 新增的应用 程序 设置 urlParameterPairStyle 指示在 PATHINFO 和 REWRITE 模式下,用什么符号作为 URL 参数名和参数值的连接字符,默认设置为 ':'
  • FLEA::getSingleton() 的细微修改

  • FLEA_Helper _Image::crop() 的 $noOverflow 参数改名为 $nocut
  • FLEA_Helper_SendFile::sendFile() 现在会输出缓存 标志
  • Smarty 扩展的 parse_str 插件 现在支持以 | 符号分割字符串,方便在页面 中使用
  • 修正 FLEA_Log 报错的问题,感谢 zhex 报告此问题
  • 修正 WebControls 中 __baseCtlCheckboxOrRadioGroup() 对 caption 判断不当的问题,感谢 hho2002 报告此问题
  • 修正了应用程序设置 displaySources = false 没有起作用的问题

  • 将 FLEA/Db/TableDataGateway.php 和 MVC.package.php 文件,方便维护。以后通过“应用程序部署向导”来打包应用程序和 Flea PHP 框架 文件,从而提高运行性能



FLEA_Session_Db 是一个新组件,用于将 session 保存到数据 库中。开发者可以很方便的扩展这个组件,以便在保存 session 时保存更多的信息。其他更新主要集中于 bug 修复和功能 增强,让 FleaPHP 变得更稳定、更好用。

预计本月底发布正式版本和配套的文档,目前我们正在为了这一目标紧张工作。

【2007-04-10】
这几天的更新集中于修复 1.0.70 beta 版发布以来发现的一些 bug,并进一步优化性能。

其中 FLEA_Ajax 现在支持以 jQuery 的选择符来确定发起 Ajax 调用的控件 。同时,调用 registerEvent() 注册 ajax 事件时,控件名必须以 jQuery 选择符的形式提供。例如要指定名为 username 的输入框,就用 “#username”。具体可以参考 FleaPHP Ajax 示例程序的代码。


  • FLEA 基础类细微调整,避免在 __autoload() 中调用 loadClass() 时发生递归调用
  • 修改了几处调用 class_exists() 的地方,以避免和 __autoload() 中调用 FLEA::loadClass() 发生冲突
  • FLEA::getFilePath() 的性能优化
  • 修改 FLEA.php 确保不会出现 log_message() 和 _T() 未定义 的问题
  • 修改 multiLangaugeSupport 拼写错误的问题(应该是 multiLanguageSupport)

  • FLEA_Ajax::dumpJs() 增加了一个 $warpper 参数,指示是否输出 <script></script> 标签
  • FLEA_View_SmartyHelper 增加了 dump_ajax_js 插件,便于在 Smarty 模版中输出 FLEA_Ajax 生成的 JavaScript 代码
  • 简化 FLEA_View_Lite、FLEA_View_Smarty,并修正一个初始化错误

  • FLEA_Dispatcher_Auth::_loadACTFile() 的性能优化
  • 修正了 FLEA_Rbac_UsersManager 处理 $_SERVER['REMOTE_ADDR'] 不严密的问题
  • 修正使用自定义 Dispatcher 时没有载入类定义的问题

  • 新增的 FLEA_Helper_Image::resizeCanvas() 方法可以调整图片大小,但不对原始图像进行缩放
  • FLEA_Helper_Image::crop() 对原始图片的定位现在支持 9 种模式
  • FLEA_Helper_Image::extractColor() 现在支持 #ff00ee 这样的色彩表示方式
  • FLEA_Helper_Image::resizeCanvas() 的 $pos 参数添加默认值 center
  • FLEA_Helper_ImgCode 增加了 $keepCode 和 $imagetype 属性,用于指示是否保留已有的验证 码和输出验证码的图片格式
  • 修正 FLEA_Helper_ImgCode::checkCaseSensitive() 缺少必要参数的问题
  • FLEA_Helper_Verifier 现在支持 notEmpty 验证规则

  • 数据库驱动的细微调整,避免 log_message() 未定义的问题
  • 数据库驱动现在会在调试模式下将所有执行的 SQL 语句 存入日志文件,方便调试和排错

  • 修正 FLEA_Db_SqlHelper::parseConditions() 不支持条件值为 null 的问题
  • 修正 FLEA_Db_TableDataGateway::findAll() 中对非整数主键值不支持的问题
  • 修正 FLEA_Db_TableLink::saveAssocData() 不支持二维数组和主键值混合的问题
  • 改进了 removeByConditions() 和 removeByPkvs() ,现在可以在删除主表记录时处理关联表
  • 给 save()、create()、update() 增加了一个 $saveLinks 参数,当该参数为 false 时,更新、创建记录操作将不会处理关联表
  • 修正了 findCount() 在以关联表作为查询条件时,结果不正确的问题
  • 优化 FLEA_Db_TableDataGateway::_prepareMeta() 的性能

  • 现在 FLEA_Language 在找不到语言 文件时,会抛出一个 FLEA_Exception_ExpectedFile 异常
  • 修改 FLEA_Log,确保能够记录每一次请求的日志



【2007-04-06】


  • 优化了 FLEA_Db_TableDataGateway::findAll() 的 HAS_ONE、HAS_MANY 和 MANY_TO_MANY 关联查询
         hasOne 优化了不必要的 LEFT JOIN
         hasMany 优化了不必要的 LEFT JOIN
         manyToMany 从两次 INNER JOIN 优化为一次 INNER JOIN




【2007-04-04】
昨天发布的 FleaPHP 1.0.70 beta 版,相对于 03月17日,有下列更新和改进:


  • 将 __FLEA_DISPLAY_EXCEPTION() 合并到了 __FLEA_EXCEPTION_HANDLER()
  • 删 除 mootools 和 prototype,并添加 jquery.js(包含官方 form 插件)(现在 FleaPHP Ajax 绑定于 jQuery)
  • __THROW() 现在会返回 false,所以开发者可以用 return __THROW(new FLEA_Exeception()) 直接抛出异常后返回
  • encode_url_args() 现在支持嵌套数组
  • FLEA::inti() 增加了一个 $loadMVC 变量 。如果该变量为 true,则会载入 MVC.package.php 文件。这样方便开发者从 FLEA_Controller_Action 派生自己的控制器基础类
  • FLEA_Db_TableDataGateway::clearLink() 更名为 clearLinks()
  • FLEA_Helper_Image::crop() 方法增加了一个 $noOverflow 参数。该参数让开发者可以在将图片转换为指定大小时保持图片的完整,并在周围填充指定的颜色
  • 改进了 FLEA_View_SmartyHelper::_pi_func_url()
  • 更新了 FLEA.php 中几处对变量的使用
  • 将 FLEA_Com_RBAC 目录 下的文件和类,迁移到 FLEA_Rbac(以前使用 FLEA_Com_RBAC 的程序可以不用修改。迁移的原因是有些虚拟主机不允许创建名为 Com 的文件夹)
  • 将 FLEA_Db_TableDataGateway::autoVerifier 改名为 autoValidating,以符合该属性的实际用途
  • 修 正 FLEA_Db_SqlHelper::parseConditions() 显示 $str 未定义警告信息的问题
  • 修正 FLEA_Db_TableDataGateway 在 PHP5 中未能正确处理 where 的问题
  • 修正 FLEA_Db_TableDataGateway::updateField() 无法使用的问题
  • 修正 parseConditions() 处理条件时的错误
  • 修正 t2js 没有过滤 \r 的问题(感谢 hho2002 报告并解决 此问题)
  • 修正了错误显示页面可能 输出警告信息的问题
  • 修正了对 HAS_ONE、HAS_MANY 和 BELONGS_TO 进行关联条件查询失败的问题
  • 修 正载入 FLEA_Com_RBAC 时出现类重复定义错误的问题
  • 优化 FLEA_Db_TableDataGateway::findAll()
  • 优化了 parseConditions(),现在可以支持更灵活的条件参数
  • 新增 FLEA_Helper_Image::extractColor() 方法,用于将 0xfffff 或 ffffff 的颜色字符串转换为 rgb 值
  • 新 增 FLEA_WebControls::mergeAttribs(),方便自定义控件处理控件属性值



FleaPHP 1.0.70 正式版发布前将要完成的改进:


  • 优化 FLEA_Db_TableDataGateway,消除不必要的 JOIN 查询(比现有查询方式会有质的提高)
  • 提供 MS Sql Server 驱动
  • 改善对 CGI 模式的支持
  • 改进 FLEA_Helper_FileUploader(以便更好的支持批量文件上传)
  • 修正 1.0.70 beta 版中发现的错误




【2007-03-17】
* FLEA_Com_RBAC_UsersManager 现在可以保存注册 IP、最后登录时间、最后登录 IP、登录次数、帐户是否锁定信息等信息
* FLEA_Db_TableDataGateway 构造函数现在支持 dbo 属性,用于直接指定该表数据入口对象要使用的 DBO
* FLEA_Db_TableDataGateway、FLEA_Db_TableLink 和 FLEA_Helper_Pager 的一些细节调整,提高易用性
* 如果提交的数据包含有效主键值,那么 FLEA_Db_TableDataGateway::create() 不会再抛出异常
* 修改了 FLEA::parseDSN() 和 FLEA::getDBO(),以便更好的处理多个 DSN 的情况
* 修改了 FLEA_Log 写入日志的一个多余字符
* 修正 FLEA::loadClass() 不能与 __autoload() 配合的问题。感谢 luwenhua 报告此问题。
* 修正 FLEA_Db_TableDataGateway 对于 dsn['port'] 处理不当的问题。感谢 luwenhua 报告此问题。
* 修正 FLEA_Db_TableDataGateway::parseDSN() 在 port 不为空时产生无效 cacheId 的问题。感谢 axing 报告此问题。
* 修正 FLEA_Exception_ExpectedClass 格式化消息时,参数顺序错误的问题
* 修正 FLEA_Helper_Pager getNavbarIndexs() 和 renderPageJumper() 在 basePageIndex 不为 0 时返回错误结果的问题
* 修正 FLEA_Helper_Pager::getNavbarIndexs 生成的页码多一个的问题
* 修正 FLEA_Helper_Pager::getNavbarIndexs() 计算起始页码错误的问题
* 修正了数据库驱动 qstr() 方法在处理数字时的问题
* 优化了 FLEA_Db_TableLink 及其继承类
+ FLEA_Db_TableDataGateway 的重大改进!允许以关联表的字段作为条件查询主表记录
+ FLEA_Db_TableDataGateway 构造函数增加了一个 autoVerifier 选项,用于覆盖 TDG 实例 的 autoVerifier 属性
+ FLEA_Db_TableLink 新增的 saveAssocMethod 属性可以指定在保存关联数据时使用何种方法,默认为 save
+ 数据库驱动新增的 enableLog 属性,允许禁止数据库驱动不保存 SQL 查询记录,从而降低内存占用。调试模式时,该属性为 true,部署模式则为 false。
+ 添加了 FLEA/Com/RBAC.php 占位文件
+ 新增 FLEA_Db_TableDataGateway::removeAllWithLinks() 可以删除所有数据及关联表的所有数据
+ 增加了 FLEA_Helper_FileUploader::existsFile() 方法,用于判断指定的上传文件是否存在

这段时间的更新主要集中在细节调整和错误修正上。务必将 1.0.70 正式版打造为一个非常稳定可靠的开发框架!

其中,最最重要的更新就是 FLEA_Db_TableDataGateway 现在允许以关联表的字段作为条件查询主表记录。 举例说明如下:

  1. class Table_Posts extends FLEA_Db_TableDataGateway
  2. {
  3.     var $tableName = 'posts';
  4.     var $primaryKey = 'post_id';
  5.    
  6.     var $belongsTo = array(
  7.         array(
  8.             'tableClass' => 'Table_Users',
  9.             'foreignKey' => 'user_id',
  10.             'mappingName' => 'user'
  11.         )
  12.     );
  13.    
  14.     var $manyToMany = array(
  15.         array(
  16.             'tableClass' => 'Table_Tags',
  17.             'foreignKey' => 'post_id',
  18.             'assocForeignKey' => 'tag_id',
  19.             'joinTable' => 'posts_to_tags',
  20.             'mappingName' => 'tags',
  21.         )
  22.     );
  23. }
复制代码

上 面的 Table_Posts 比较好理解,分别定义了一个 BELONGS_TO 关联和一个 MANY_TO_MANY 关联。

现在假设要查询所有指定了标签“PHP”的记录,那么代码如下:

  1. $conditions = array(
  2.     array('tags.tagname', 'PHP')
  3. );

  4. $tablePosts =& new Table_Posts();
  5. $posts = $tablePosts->findAll($conditions);
  6. dump($posts);
复制代码

输出结果可以看到,只有指定了标签“PHP”的记录才 会被查询出来。

同样,可以查询用户名为“dualface”的所有记录。

  1. $conditions = array(
  2.     array('user.username', 'dualface')
  3. );

  4. $tablePosts =& new Table_Posts();
  5. $posts = $tablePosts->findAll($conditions);
  6. dump($posts);
复制代码

新 的 $condtions 写法比较特别!一定要注意!

查询条件必须是一个数组,并且包含两个元素。第一个元素是字段名,第二个是字段值。
字段名必须是“关联名字.字段名”的形式。

例如要以关联 tags (关联名字由关联的 mappingName 属性指定)的 tagname 字段进行查询,那么字段名就是:“tags.tagname”。

假如不写“tags.”,而只是 “tagname”,查询是无法进行的。

#################################################################

【2007-03-04】
* 修正 FLEA_Helper_Verifier::isDOMAIN() 没有判断值的问题,感谢 freeagle 报告此问题
* WebControls 的 ListBox 和 DropdownList 现在支持 key 和 caption 属性,感谢 freeagle 报告此问题
* 修正 FLEA_Db_TableDataGateway::disableLinks() 调用后,enableLink() 不起作用的问题。修改后,规则如下:
  1、调用 disableLinks() 后,禁用所有关联;
  2、调用 enableLink($linkName) 后,启用该关联,其他被禁用的关联仍然处于被禁用状态;
  3、调用 enableLinks() 后,所有关联将启用,不管该关联以前是否已经被禁用。
* FLEA_Helper_Pager 增加了 basePageIndex 属性,用于指示实际页码的基数。感谢 hegz 的热心建议

#################################################################

【2007-02-28】
这段时间对 FleaPHP 1.0.70 做了许多细节上的调整,除了修正一些小 bug,其他调整都是让开发者能够更舒服的使用 FleaPHP。

* 首先是将 FLEA_Controller_Action、FLEA_Dispatcher_Simple、FLEA_Dispatcher_Auth 和 FLEA_Com_RBAC 四个文件合并为了 FLEA/MVC.package.php 文件。其次,将 Mysqlt.php 合并到了 Mysql.php 中,Exception.php 合并到了 FLEA.php 中,TableLink.php 合并到了 TableDataGateway.php 中。

这些合并工作可以明显减少 IO 次数,提高性能。这个修改对应用程序几乎没有影响,除非你在调用 FLEA::runMVC() 之前需要载入 RBAC。于此对应,新增应用程序设置 MVCPackageFilename,用于指示在使用 MVC 模式时要载入哪一个 MVC 模式实现文件。这个选项默认值是 MVC.package.php。

* FLEA_Helper_Verifier 现在会返回检查时没有通过的检查项目 名。有了这个功能,开发者可以很方便的知道在验证 时,数据没有通过哪一项测试(例如类型不符或是长度太长)。这样就能反馈给用户更具体的错误信息,提高应用程序对用户的友好度。
* 强化了 SmartyHelper 中对 url 的支持,现在可以使用数组作为参数来构造 url,例如:

  1. { url controller='MyController' action='MyAction' id=$id __moreArgs=$moreArgs }
复制代码

上面的 __moreArgs 是一个占位符(可以是任何名字,只要不和其他参数同名),而 $moreArgs 就是一个数组,内容是 array('type' => 'article', 'sort' => 'desc')。最后生成的 url 如下:

  1. http://localhost/index.php?controller=MyController&action=MyAction&id=1&type=article&sort=desc
复制代码

这样在模版中构造带有动态参数的 url 就非常方便了。更复杂的实际例子

  1. { url controller='BoProducts' action='index' page=$pager.currentPage sort=$columnsSort.created __condition=$conditions __filter=$filter }
复制代码

* FLEA_Helper_Pager::getPagerData() 可以返回分页的相关数据,包括 pageSize, totalCount, count, pageCount, firstPage, firstPageNumber, lastPage, lastPageNumber, prevPage, prevPageNumber, nextPage, nextPageNumber, currentPage, currentPageNumber。使用示例:

  1. // PHP 脚本
  2. $view->assign('pager', $pager->getPagerData());
  3. $view->display('template.tpl');

  4. // template.tpl 模版
  5. 共有 { $pager.totalCount } 条记录,分为 { $pager.pageCount } 页显示,每页 { $pager.pageSize} 条
复制 代码

* FLEA_Helper_Pager::getNavbarIndexs() 可以产生指定范围内的页面索引和页号,例如:

  1. // PHP 脚本
  2. $currentPage = 当前页索引;
  3. $view->assign('navbarIndexs', $pager->getNavbarIndexs($currentPage, 8));
  4. $view->display('template.tpl');

  5. // template.tpl 模版
  6. 选择要查看的页码:
  7. { section name=nav loop=$navbarIndexs }
  8. <a href="{ url controller='MyController' action='MyAction' page=$navbarIndexs[nav].index }">[{ $navbarIndexs[nav].number }]</a>
  9. { /section }
复 制代码

上面的代码会产生一个最多 8 页的页码条。假如当前页是第 8 页,那么这个页码条就从第 4 页到 11 页,如下图:

getNavbarIndexs.gif



* WebControls 增加了一个 static 类型控件
* 改进了 WebControls,raidoGroup 和 checkboxGroup 支持表格显示方式
* 改进了 FLEA_WebControls 对 radioGroup 和 checkboxGroup 的支持

现在的 WebControls 在生成 checkbox 组和 radio button 组时非常方便了,实际应用的例子:

  1. { webcontrol type='checkboxgroup' name='tags1' items=$allTags key='tag_id' caption='tagname' multirow=true cols=6 table=true }
  2. { webcontrol type='radiogroup' name='tags2' items=$allTags key='tag_id' caption='tagname' multirow=true cols=6 table=true }
复制代码

效果如下:

webcontrols.png



* 现在 FLEA_Ajax::registerEvent() 返回事件在客户端的响应函数名
* 现在 FLEA_Controller_Action::_registerEvent() 返回事件在客户端的响应函数名,而不是 FLEA_Ajax 对象实例


* 将 cysin 翻译的英文错误信息更新到 _Errors/default/ErrorMessage.php 文件中。
* 根据 etng 提供的 patch 修改了 SHOP 示例程序。现在 SHOP 示例程序已经完全与 FleaPHP 1.0.70 兼容。
* 将 json_encode() 和 json_decode() 的定义移动到文件 FLEA.php 中。这样无需载入 FLEA/Ajax.php 就可以使用 json_encode() 和 json_decode() 了。
* 修改了“部署”模式的默认设置,将显示异常信息,但不会暴露应用程序文件位置和更多的信息。这样既能看到错误信息,又不会暴露有安全隐患的内容。
* 修改了“部署”模式对数据库元数据的缓存时间,默认为 900 秒。
+ 增加了应用程序设置 displaySource,指示在显示异常信息时是否显示文件源代码。FleaPHP 在应用程序出错时,会显示详细的错误信息,以及出错位置附近的源代码。这个特性在开发时很有用,但应用程序部署到服务器前务必将该设置改为 false,否则出错时,会看到应用程序的部分源代码,可能造成安全问题。
* 细调了 FLEA_Language 和 FLEA_Log,对开发者没有影响。

* 修正了 FLEA_Db_TableDataGateway 没有正确调用 verifier 的问题。
* 修正 FLEA_Helper_Verifier 对 ALPHANUMX 类型验证错误的问题。
* 修正当提交给 FLEA_Db_TableDataGateway::create() 的数据包含主键字段值时,create() 不会处理关联数据的问题。
* 现在当 FLEA_Db_TableDataGateway::findAll() 获取关联数据时,如果关联数据不存在,对应的映射字段会设置为 null。

#################################################################

【2007-02-08】

+ 增加了 FLEA_Dispatcher_Simple::parseUrl() 方法,用于分析指定 url 中包含的控制器名字和动作名
+ FLEA_Helper_Pager 增加了 getPagerData() 和 getNavbarIndexs() 方法,分别用于获得分页参数和指定页段的索引和页码(方便在 Smarty 模版引擎中使用)
+ FLEA_View_SmartyHelper 增加了 parse_str、to_hashmap 和 col_values 方法,方便在模版中处理数据
+ FLEA_WebControls 增加了 CheckBoxGroup 控件类型
* 错误信息输出格式有细微的调整
* 改进了 WebControls,以便更好的支持自定义控件。

#################################################################

【2007-02-07】

增加了一个 SmartyHelper,为 Smarty 和 TemplateLite(一个 Smarty 的替代品)模版引擎提供更好的支持。目前包括下列自定义函数:

{ url controller='controller name' action='action name' }
{ webcontrol type='textbox' name='username' size=30 class='css_style' }
{ _t key='word' lang='chinese-gb2312' }
{ get_app_inf key='defaultController' }

其中 url 和以前的用法有所区别:

以前是:{ url controller='controller name' action='action name' args='key=value&key2=value2' }
现在是:{ url controller='controller name' action='action name' key='value' key2=$value2 }

新的写法更容易将变量传递给 url 函数。webcontrol 的用法和 url 类似。

增加了对 TemplateLite 模版引擎的支持。这个模版引擎是以前的 Smarty Lite,相当于简化版的 Smarty,但速度更快,而且有 Smarty 的绝大部分功能。

删除了 QuickTemplate(不能比现有的做得更好就没有存在的价值)、SimpleTemplate(这个模版引擎功能太少,如果需要可以从 FleaPHP 1.0.6x 中 copy 来用)。

改进了 FLEA_Com_RBAC_UsersManager::validateUser() 方法,以便记录用户的最后登录时间和累计登录次数。并且返回值可以是用户数据,使得开发者只需一次 validateUser() 调用就能够完成用户名、密码验证,并获得有效的用户数据。

这几天改动不大,下一步是把 Ajax 部分对 prototype 和 jquery 的支持做好。

#################################################################

【2007-01-31】

添加了一个 Ajax 示例程序,用于演示 FleaPHP 提供的 Ajax 功能。目前有三项测试,分别是:

  • 用 Ajax 提交一个值,然后从服务器获得结果;
  • 用 Ajax 提交一个表单 ,然后从服务器获得结果;
  • 用 Ajax 获取一个 JSON。

三个测试分别演示如何提交一个控件(例如文本输入框)的值、如何提交表单、如何从服务器获取一个 JSON。


完善了 FLEA_Ajax 类和 mootools 的适配器,现在对于每一个 Ajax 请求支持下列属性:

  • method: 请求方法,可设置为 post、get,默认为 post
  • postBody: 请求访问 为 post 时,要提交给服务器的数据
  • parameters: 附加的请求参数(通过 GET 传递)
  • dataControl: 指定的控件 ID 及其值会作为 postBody 提交
  • beforeRequest: 发起请求前要执行的代码
  • afterRequest: 提交请求后要执行的代码
  • onSuccess: 请求成功后要执行的代码
  • onFailure: 请求失败时要执行的代码
  • onStateChange: 请求状态改变时要执行的代码
  • async: 指示请求是异步还是同步,默认为异步请求,设置为 false 时使用同步请求
  • update: 指示请求成功时,更新哪一个控件的 innerHTML 属性,update 的值是控件 ID
  • updateValue: 指示请求成功时,更新哪一个控件的 value 属性,updateValue 的值是控件的 ID
  • eval: 当 eval 为 true 时,服务端返回的内容如果是 JavaScript 脚本,则执行
  • loadingIcon: 当发出 Ajax 请求时,修改指定控件的样式为 display:block,
    请求收到回响后再将控件的样式设置为 display:none
  • clearUpdate: 如果为 true,则发出请求时,清空 update 和 updateValue 指定的控件

使用这些属性,可以确保不管使用哪一个 JavaScript 库,应用程序都可以获得一样的运行效果。FleaPHP 会根据开发者选择的 JavaScript 库动态生成不同的 JavaScript 代码。这样可以避免将开发者绑定到某个特定的 JavaScript 库,给于开发者最大的灵活性。

目前只有 mootools 的适配器已经开发完成,正在开发的适配器有 prototypejquery 的。

 

链接:http://qeephp.com/bbs/viewthread.php?tid=183&extra=page%3D2%26amp%3Bfilter%3Ddigest&page=1

 

 

分享到:
评论

相关推荐

    FleaPHP+开发指南

    fleaphp框架,国产最好php开发框架

    fleaphp中文手册详细版

    Fleaphp内置了错误处理机制,当程序发生错误时,可以生成详细的错误报告,便于调试。同时,框架还支持日志记录,方便追踪和分析应用运行中的问题。 九、辅助函数(Assistants) Fleaphp提供了一系列的辅助函数,它们...

    fleaphp核心完整代码

    8. **错误处理**:Fleaphp有完善的错误处理和日志记录功能,能帮助开发者在开发过程中快速定位和解决问题。它还支持自定义错误页面,提升用户体验。 9. **安全特性**:Fleaphp关注应用的安全性,内置了防止SQL注入...

    fleaphp1.7.1524

    1. **轻量级框架**:Fleaphp设计的核心理念是简洁和高效,它拥有较小的体积,适合快速开发小型到中型的Web应用。这种框架的优点在于它易于学习,且不会对服务器资源造成过大的负担。 2. **MVC架构**:Fleaphp遵循...

    fleaphp框架

    FleaPHP框架是一款轻量级的PHP开发框架,旨在提高开发效率并降低项目的维护成本。它的设计理念是简洁、高效和可扩展,使得开发者能够快速构建Web应用。在深入理解FleaPHP框架之前,我们首先需要了解PHP框架的基本...

    php框架fleaphp

    作为一款优秀的框架,Fleaphp旨在提供高效、简洁且易于上手的开发工具,帮助开发者快速构建Web应用。下面将详细介绍Fleaphp的主要特点、核心组件以及如何使用它进行开发。 1. **主要特点** - **轻量级**:Fleaphp...

    fleaphp 框架实例以及详细使用方法说明

    Fleaphp框架是一款专为提高开发效率设计的轻量级PHP框架,它以其简洁的代码结构、良好的可扩展性和易学性深受开发者喜爱。在本文中,我们将深入探讨Fleaphp框架的核心特性,常见问题及解决方案,以及如何有效地使用...

    Fleaphp开发指南

    《Fleaphp开发指南》是一本专为初学者设计的PHP框架学习手册,特别针对FleaPHP这一轻量级框架进行了深入浅出的讲解。FleaPHP是一款基于PHP5的MVC(Model-View-Controller)架构的开源框架,旨在简化Web应用的开发...

    fleaphp框架附实例(最新版)

    Fleaphp的核心设计理念是“简洁、实用”,为开发者提供了一套高效的开发工具集,使他们能够快速构建动态、数据库驱动的Web应用。 在“fleaphp框架附实例(最新版)”中,我们可以期待获得以下几方面的知识点: 1. **...

    fleaphp手册

    fleaphp.chm手册

    FleaPHP 开发指南

    ### FleaPHP 开发指南知识点总结 #### 一、开始前的准备工作 FleaPHP 开发者们在开始学习和使用此框架之前,应该确保具备一个稳定且一致的开发环境,以便更好地理解和应用FleaPHP的功能特性。为了达到这一目的,...

    fleaphp中文手册

    这份文档是学习和使用FleaPHP的关键资源,它将指导您如何有效地利用框架的功能进行开发。 总的来说,FleaPHP是一个全面的PHP开发工具,它的设计理念和功能特性使其成为快速构建Web应用的理想选择。通过深入学习和...

    大道PHP 第44章 应用FleaPHP开发论坛社区系统.doc

    《大道PHP 第44章 应用FleaPHP...通过本章的学习,读者将全面了解使用FleaPHP框架构建论坛社区系统的过程,从需求分析、功能设计到数据库设计,再到实际开发环境的搭建,从而提升PHP开发技能,掌握实际项目开发的经验。

    FleaPHP的单入口文件详解

    FleaPHP的单入口文件是整个框架运行的核心,理解其工作原理对于开发和调试FleaPHP应用至关重要。通过深入研究`FleaPHP核心.chm`文档,开发者可以获得更详细的框架内部机制和最佳实践,从而更好地利用FleaPHP构建高效...

    Fleaphp 常用方法.doc

    在FleaPHP开源应用程序开发框架中,有几个关键的系统方法,它们是开发高效Web应用的基础。下面我们将详细探讨这些方法: 1. **FLEA::initWebControls()**: 这个函数用于初始化WebControls,它返回一个`FLEA_...

    FleaPHP chm文档

    FleaPHP chm文档,简单实例,框架流程介绍

Global site tag (gtag.js) - Google Analytics