smarty+adodb+部分自定义类的php开发模式


Posted in PHP onDecember 31, 2006

前几天把热网的后台基本弄好,腾出时间对工作总结了一下。
  在设计模式上,我尝试着使用mvc模式的开发。用smarty控制显示,用case语句控制各种action,然后写好各种模块的class给action调用。这样做的确对代码的控制强了一点,比如在class.message.php中写上getAllMsg()函数,那么这个函数就可以被许多action调用。再配上分页类。在对数据的处理上还算灵活。 
 

$db=new Db;  
 $sql="select * from com_info,hr_info where hr_info.ci_id=com_info.id and {$cate} like '%{$content}%'";  
 $totalArr=$db->execute($sql);  
 $url="hr.php?op=searchHrInfoAction&cate={$cate}&content=".urlencode($content);  
 $totalItems=count($totalArr);  
 $currentPageNumber=(isset($_GET['page']))?$_GET['page']:1;  
 $pageNav=new PageNumber($currentPageNumber,$totalItems,3,3,$url);  
 $currentPageRs=$pageNav->getRsPerPage(&$totalArr);  
 $pageNavigation=$pageNav->getPageNumber();  
 $smarty->assign("pageNavigation",$pageNavigation);  
 $smarty->assign("hr",$currentPageRs);  
 $smarty->display("hr_get.htm");  
而且这种方式对协同开发很有帮助,代码重复率也不是很高。
但是如上代码所示,在构造各种模块的class之外,因为各种个性化查询的存在,不可避免会在control中直接使用db类(当然,这些处理也可以放在写成类放在class中,但有点显得 臃肿和做作)。
    但是光就方便而言,如果一段代码或者一个功能不被其他地方调用,完全可以把mc放在一起,保v单独就可以了,这需要对软件认真分析。下班了,回家楼。
PHP 相关文章推荐
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
php SQL Injection with MySQL
Feb 27 PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 PHP
php入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 PHP
PHP-FPM 的管理和配置详解
Feb 17 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 PHP
PHP后门隐藏的一些技巧总结
Nov 04 PHP
adodb与adodb_lite之比较
Dec 31 #PHP
PHP获得用户使用的代理服务器ip即真实ip
Dec 31 #PHP
使用adodb lite解决问题
Dec 31 #PHP
PHP通过COM使用ADODB的简单例子
Dec 31 #PHP
Adodb的十个实例(清晰版)
Dec 31 #PHP
ADODB的数据库封包程序库
Dec 31 #PHP
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 #PHP
You might like
php中处理模拟rewrite 效果
2006/12/09 PHP
php自定义session示例分享
2014/04/22 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Python基础入门之seed()方法的使用
2015/05/15 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
python psutil模块使用方法解析
2019/08/01 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
古驰英国官网:GUCCI英国
2020/03/07 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
毕业生造价工程师求职信
2013/10/17 职场文书
新学期开学寄语
2014/01/18 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
新教师培训方案
2014/06/08 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
教师见习报告范文
2014/11/03 职场文书
2014年教研室工作总结
2014/12/06 职场文书
详解Vue router路由
2021/11/20 Vue.js
MySQL创建管理KEY分区
2022/04/13 MySQL
React如何使用axios请求数据并把数据渲染到组件
2022/08/05 Javascript