目 录
目 录
摘 要 .......................................................................................................................................................... I ABSTRACT ....................................................................................................................................................... III 目 录 .......................................................................................................................................................... I 第1章 绪 论 .......................................................................................................................................... 1 1.1 研究背景 ..................................................................................................................................................... 1 1.2 使用框架 ..................................................................................................................................................... 1 1.3 开发环境 ..................................................................................................................................................... 2 第2章 THINKPHP 和CODEIGNITER ............................................................................................................. 3 2.1 THINKPHP ...................................................................................................................................................... 3 2.1.1 ThinkPHP 介绍 .................................................................................................................................... 3 2.1.2 ThinkPHP 的分层架构 ........................................................................................................................ 3 2.1.3 ThinkPHP 的MVC模式 ...................................................................................................................... 4 2.1.4 ThinkPHP 独创的核心编译和项目编译机制 .................................................................................... 4 2.1.5 ThinkPHP 特性 .................................................................................................................................... 4 2.2 CODEIGNITER ..................................................................................................................................................... 8 2.2.1 CodeIgniter 介绍................................................................................................................................. 8 2.2.2 CodeIgniter 技术和架构 ..................................................................................................................... 8 2.2.3 CodeIgniter 设计和目录 ........................................................................................................................ 9 2.2.3 CodeIgniter 特性................................................................................................................................. 9 第3章 THINKPHP 和 CODEIGNITER在应用中比较 .................................................................................. 11 3.1 配置THINKPHP ........................................................................................................................................... 11 3.2 配置CODEIGNITER ......................................................................................................................................... 13 3.3 HELLO WORLD ................................................................................................................................................. 15 3.3.1 ThinkPHP 输出 ..................................................................................................................................... 16 3.3.2 CodeIgniter 输出 .................................................................................................................................. 18 3.4 $_POST 和 $_GET方法 ............................................................................................................................... 20 3.4.1 ThinkPHP 的表单 ................................................................................................................................. 21 3.4.2 CodeIgniter的表单 ............................................................................................................................... 23 3.5 MODEL的使用 .............................................................................................................................................. 25 3.5.1 ThinkPHP的Model ............................................................................................................................... 25 3.5.2 CodeIgniter的Model ........................................................................................................................... 27 第4章 特性比较 ........................................................................................................................................ 28 4.1 编译与非编译型 ....................................................................................................................................... 28 第5章 结论 ................................................................................................................................................ 33 5.1 论文目的 ................................................................................................................................................... 33 5.1.1 使用习惯 ........................................................................................................................................... 33 5.1.2 网站效率 ............................................................................................................................................. 33 5.1.2 致初学者 ............................................................................................................................................. 34 参考文献 ....................................................................................................................................................... 35 作者简介及在学期间所取得的科研成果 ........................................................................ 错误!未定义书签。 致 谢 ......................................................................................................................... 错误!未定义书签。
I
目 录
II
第1章 绪 论
第1章 绪 论
1.1 研究背景
许多PHP程序员经历了各种开发环境之后,肯定有自己的一套框架选择池,不同的网站和应用需要不同的框架,但是此论文的论述不在这里讨论,只对ThinkPHP和CodeIgniter的一些配置,语法,和一些特性区别给予论述,使读者对这两个框架有更好的了解.
1.2 使用框架
开发者可能出于不同的考虑而使用PHP开发框架,不过首当其冲的原因是为了加速开发过程。相似工程之间的代码重用能够节省开发者大量的时间和精力。PHP开发框架内置了预建的模块,免去了冗长又令人厌烦的编程工作。这样开发者就能够把时间活在开发实际程序上,而不是每一次都要为每一个项目重建基础模块。
稳定性是开发者使用框架的另一个重要原因。尽管简单是PHP最大的资本,也是许多人喜爱这个脚本语言的原因,它也是PHP的“潘多拉之盒”,尤其是那些初学者而言,PHP是如此的简单以至于他们会完全没有意识地写出低质量的代码。这样的PHP程序可能在大多数时间内仍正常工作,但你可能已在代码中留下了巨大的安全漏洞,使其易受攻击。要时刻牢记PHP是一门很宽松的语言十分重要,因此确保不在代码中遗留任何安全漏洞是重中之重——即使程序看起来工作正常。
最后一点,PHP开发框架是可扩展的,并且有许多框架可供选择。你也可以创造你自己的,不过许多开发者决定从那些流行的知名的开发框架中做选择,因为它们往往有着庞大的支持团队,以及相关的论坛/社区方便你与其他使用同一个框架的开发者相互交流。注意,你应当事先检验你的项目是否需要使用框架,这里提供一份简单的列表以供参考:使用框架能否节省你(和其他任何会使用它的人)的时间和精力?是否能够让程序得到更好的表现?能否提高稳定性?如果你对上面任何一个问题的回答是肯定的,那么使用PHP开发框架对于这个项目就可能是正确的选择。
1
第1章 绪 论
1.3 开发环境
实验环境:Windows 7 Professional + Apache 2.0 + Mysql 5.0 +PHP 5.4 文件目录:根目录/TPCI
TPCI下包括TP和CI两个文件夹,分别作TP实验台的根目录和CI实验台根目录. ThinkPHP版本 3.0 CodeIgniter 版本2.1.2 使用编辑器 Notepad++
2
第2章 ThinkPHP 和CodeIgniter
第2章 ThinkPHP 和CodeIgniter
2.1 ThinkPHP
2.1.1 ThinkPHP 介绍
ThinkPHP可以支持WIN/Unix服务器环境,正式版需要PHP5.0以上版本支持,支持Mysql、PgSQL、Sqlite以及PDO等多种数据库,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
使用ThinkPHP,你可以更方便和快捷的开发和部署应用,当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简单、兼容和快速的特性中受益。简洁、快速和实用是ThinkPHP发展秉承的宗旨,为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应用开发的最佳实践。 作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。 ThinkPHP遵循 Apache2 开源许可协议发布,意味着用户可以免费使用ThinkPHP,甚至允许把用户的ThinkPHP应用采用商业闭源发布.[1]
2.1.2 ThinkPHP 的分层架构
ThinkPHP的分层架构采用三层架构模式:
表现层:包含模板视图、用户界面、JS、Flash等通过模板引擎的支持,可以使用标签定义简化表现层的定义工作。
业务层:包含业务接口层、业务逻辑层、实体层、数据访问层Action控制器作为业务接口层,提供系统各种业务操作的入口。因此,不提倡在控制器类中写过多的业务逻辑代码,虽然说很难严格控制。具体的业务逻辑应该封装到数据访问对象(Dao)类中实现,如果觉得过于复杂,还可以把子业务在Helper类中包装后统一调用。业务处理过程一般会构造出业务实体对象(如Vo对象),对业务实体对象的存取通过数据访问层完成。数据访问层把实体对象和数据库数据之间建立映射关系,并且封装了通用的数据操
3