ThinkPHP和CodeIgniter的粗略比较(4)

2019-02-21 00:29

第2章 ThinkPHP 和CodeIgniter

2.2.3 CodeIgniter 设计和目录

CodeIgniter 是基于模型-视图-控制器这一设计模式的。MVC 是一种将应用程序的逻辑层和表现层进行分离的方法。在实践中,由于表现层从 PHP 脚本中分离了出来,所以它允许你的网页中只包含很少的脚本。[3]

模型(Model) 代表你的数据结构。通常来说,你的模型类将包含取出、插入、更

新你的数据库资料这些功能。

视图(View) 是展示给用户的信息。一个视图通常是一个网页,但是在 CodeIgniter 中,一个视图也可以是一个页面片段,如页头、页尾。它还可以是一个 RSS 页面,或任何其它类型的“页面”。

控制器(Controller) 是模型、视图以及其他任何处理 HTTP 请求所必须的资源之间的中介,并生成网页。 CodeIgniter 在 MVC 使用上非常宽松,因此模型不是必需的。如果你不需要使用这种分离方式,或是发觉维护模型比你想象中的复杂很多,你可以不用理会它们而创建自己的应用程序,并最少化使用控制器和视图。CodeIgniter 也可以和你现有的脚本合并使用,或者允许自行开发此系统的核心库,其目的是,使你可以以最适合你的方式工作。 [2]

2.2.3 CodeIgniter 特性

开发框架优秀与否与它有多少特性没有太大的关系。你从特性中不能推断出用户的体验、不能体验到框架设计是不是直截了当,是不是智能。特性也不能告诉你框架代码的质量如何、性能如何、细节处理的如何、安全性如何。判断一个框架的唯一办法是在使用中了解它。安装CodeIgniter很简单,所以,请你使用它。CodeIgniter的主要特性如下:

* 基于 MVC 体系 * 超轻量级

* 对数种数据库平台的全特性支持的数据库类 * Active Record 支持 * 表单与数据验证 * 安全性与 XSS 过滤

9

第2章 ThinkPHP 和CodeIgniter

* Session 管理

* 邮件发送类,支持附件,HTML 或文本邮件,多协议(sendmail, SMTP 和 Mail)及更多。

* 图像处理类库(剪裁,缩放,旋转等)。支持 GD,ImageMagick 和 BetPBM * 文件上传类 * FTP 类 * 本地化 * 分页 * 数据加密 * 基准测试 * 全页面缓存 * 错误日志 * 应用程序评测 * 日历类 * User-Agent 类 * Zip 编码类 * 模板引擎类 * Trackback 类 * XML-RPC 类库 * 单元测试类

* “搜索引擎友好”的 URL * 灵活的 URI 路由 * 支持钩子和类扩展 * 大量的辅助函数 [3]

10

第3章 ThinkPHP 和 CodeIgniter在应用中比较

第3章 ThinkPHP 和 CodeIgniter在应用中比较

3.1 配置ThinkPHP

在使用ThinkPHP之前,要先配置,我用的是ThinkPHP 3.0。ThinkPHP 的框架包只有一个名为ThinkPHP的4.63MB的文件夹,将他拷到网站目录下后,要建立一个index.php的入口文件。ThinkPHP 2.0 的入口文件和ThinkPHP3.0的入口文件有很大区别,最明显的一点就不用再写run()方法,ThinkPHP 3.0是自动进行run的.

在拷贝的时候就发现,ThinkPHP 一直在做一个轻量级开发框架,而CodeIgniter框架包比ThinkPHP 还要小,说明CodeIgniter 比ThinkPHP还要轻巧,在后面的叙述中会有详细解释.

下面写ThinkPHP的入口文件,一个ThinkPHP的入口文件包括了几项.载入框架入口文

(1) 定义THINK_PATH 框架路径 (2) 定义APP_NAME 项目名称 (3) 定义APP_PATH 项目路径 (4) 定义APP_DEBUG 定义调试模式 (5) 定义SHOW_PAGE_TRACE 显示页面轨迹 (6) 加载入口文件(此步为必须,以上为可选)

如果不定义项目路径, ThinkPHP就会自动在ThinkPHP的当前框架目录下生成四个文件夹,它们是 Common,Conf,Lang,Lib,Runtime,Tpl,他们基本都是空文件夹,用来存放相应的文件信息:

表3.1 ThinkPHP目录结构

Common Conf Lang Lib Tpl Runtime 项目公共文件目录,一般放置项目的公共函数 项目配置目录,项目所有的配置文件都放在这里 项目语言包目录(可选 如果不需要多语言支持 可删除) 项目类库目录,通常包括Action和Model子目录 项目模板目录,支持模板主题 项目运行时目录,包括Cache(模板缓存)、Temp(数据缓存)、Data(数据目录)和Logs(日志文件)子目录,如果存在分组的话,则首先是分组目录。 [3]

11

第3章 ThinkPHP 和 CodeIgniter在应用中比较

图3.1 ThinkPHP 项目目录机构1

通过图片可以看到,如果不定义项目路径,文件夹和框架ThinkPHP的文件夹在同一级目录下,所以显得杂乱,一般的我们都定义一个项目路径,而项目路径就是以项目名为文件夹,与ThinkPHP框架同一级.修改后的项目目录结构如下图

图3.2 ThinkPHP 项目目录机构2

其中TP文件夹包含了Common,Conf,Lang,Lib,Runtime,Tpl,四个文件夹,下面是入口文件index.php的内容

define(\TH\define(\define(\// 开启调试模式

define(\define(\定义项目路径 require THINK_PATH.'ThinkPHP.php';

之后再浏览器中输入TP的路径http://127.0.0.1/TPCI/TP/ 显示如下,说明配置成功

图3.3 ThinkPHP 项目测试主页

ThinkPHP 没有提供入口文件,所以如果不配置index.php,是无法直接打开的,而CodeIgniter 把框架拷贝过来后,入口文件是已经配置好的.

12

第3章 ThinkPHP 和 CodeIgniter在应用中比较

3.2 配置CodeIgniter

在使用CodeIgniter之前,也要配置,我用的是CodeIgniter 2.1.2. CodeIgniter 的框架包包括application 和 system 两个文件夹和一个,共1.28MB, application里面是用户需要操作的,system里是系统核心,index.php 是入口文件

图3.4 CodeIgniter 项目目录

拷贝过来之后,就可以直接运行,在浏览器中输入相应路径,会出现如下图

图3.5 CodeIgniter 项目初始化主页

由于入口文件已经给出,所以下面对入口文件进行解析.

CodeIgniter的入口文件内容比ThinkPHP多很多下面我们进行一一解析 define('ENVIRONMENT', 'development')

定义环境类型,此处有三项可以选择,分别是\开发),\实验)和\产品),网站建设初期用development,这也是CodeIgniter的默认选择,

下面针对定义的ENVIRONMENT进行判断错误信息报告,这里对网站安全可以提供保障,如果是development 环境,将提示所有警告,错误信息,如果是testing则提示系统相应的的设置的警告,错误信息,如果是production环境,将屏蔽所有警告.

if (defined('ENVIRONMENT')) { switch (ENVIRONMENT)

13


ThinkPHP和CodeIgniter的粗略比较(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:产品设计设计-毕业论文(吸尘器)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: