接下来将使用CodeIgniter实现一个简单的新闻列表,用户点击列表中的新闻标题将会进入新闻的正文页面,通过该例子演示CodeIgniter实现MVC开发的流程。在CodeIgniter中,控制器命名规则比较灵活,它不需要加前缀或后缀,一个普通的文件即可。......
2023-11-04
CodeIgniter简称CI,是国内使用最广泛的PHP MVC框架之一。CodeIgniter是一款遵循Apache/BSD双协议的开源产品,所以开发人员可以将CodeIgniter整合到任何开发环境,不需要担心版权问题。
CodeIgniter从MVC入口文件到框架核心代码,均经过严谨的设计。CodeIgniter定位于小型的网站应用开发,但并不代表CodeIgniter不适用于大型网站开发。事实上,CodeIgniter对MVC的支持是非常强大,无论是URL的处理,还是视图引擎都能够适应大型网站的开发需求。CodeIgniter MVC处理流程如图4-19所示。
图4-19 CodeIgniter MVC处理流程
如图中所示,CodeIgniter在URL处理阶段就提供了安全检验,对GTE和POST屏蔽了PHP内置的处理方式,提供了完善的过滤方法。控制器负责调用模型、类库、辅助函数、插件、脚本等功能模块,其中模型通常就是处理数据库表的实体影射,它是整个MVC的桥梁。辅助函数是CodeIgniter框架的一个实用而强大的功能库,许多原本复杂的功能调用辅助函数就能够轻松地完成。CodeIgniter还支持官方及第三方的扩展,PHP程序员使用面向对象知识可以快速地开发出CodeIgniter扩展。(www.chuimin.cn)
CodeIgniter支持主流的缓存机制(如文件缓存、内存缓存、数据库缓存、浏览器压缩缓存等),并且支持页面局部缓存、控制器缓存、数据库缓存等,这些缓存有些是智能化的,有些需要开发人员自行处理,CodeIgniter提供了非常直观的缓存部署方式。
单元测试是应用程序开发中重要的一个环节,CodeIgniter支持主流的PHP单元测试,它是确保应用质量的关键手段,不幸的是PHP程序员并不习惯使用单元测试,CodeIgniter提供了简单但强大的单元测试,有效地降低了单元测试难度,从而提高应用的代码质量。不仅如此,CodeIgniter还提供了数据库脚手架,开发人员在不进入数据库系统的情况下就可对数据进行整理、测试等,从而提高PHP应用开发速度。
CodeIgniter灵活高效的MVC处理机制,无论在国内还是国外都得到了广泛的PHP程序员支持。在开源社区还衍生了Kohana子项目。对于国内PHP程序员来说,CodeIgniter不仅简单好用,而且官方提供了详细的中文帮助文档,这也是CodeIgniter在国内流行的原因之一。
接下来将以CodeIgniter 2.1.2为基础,介绍CodeIgniter的MVC处理流程,让读者对CodeIgniter有一个更加直观的认识。
有关PHP MVC开发实战的文章
接下来将使用CodeIgniter实现一个简单的新闻列表,用户点击列表中的新闻标题将会进入新闻的正文页面,通过该例子演示CodeIgniter实现MVC开发的流程。在CodeIgniter中,控制器命名规则比较灵活,它不需要加前缀或后缀,一个普通的文件即可。......
2023-11-04
PHP 5后的版本借鉴了大量Java思想,得益于早期PHP面向过程编程支持,PHP在实现MVC设计中变得较灵活、易用。但是随着PHP 5.x的到来,各种MVC框架的出现,尤其Zend推出的Zend Framework,彻底地改变了PHP状况,使得PHP也能够实现优雅的Web编程。MVC设计模式将使代码将变得简洁。但是在MVC设计模式中,Index称为动作。当然,MVC只是一种设计模式,在开源的PHP编程世界中,已经拥有众多的MVC编程框架。......
2023-11-04
前面已经简单介绍过ThinkPHP视图引擎,这些标签处理机制类似于JSP tag,使用XML作为标签的渲染方式,开发人员可以方便地在网页中嵌入XML标签,然后由ThinkPHP视图引擎解释成标准的PHP代码。ThinkPHP的视图引擎之所以高效,主要体现在它的标签扩展性。ThinkPHP的视图标签扩展性够完美地与后台控制器代码相结合,例如在Smarty中使用函数功能,首先需要在后台PHP代码注册,而在ThinkPHP中完全不需要,如以下代码所示。......
2023-11-04
系统共支持7种模式扩展,下面将分别对最常用的几种模式进行介绍。表11-1 CURD操作接口如表11-1所示,参数$data表示传入或返回的数据信息;参数$options表示返回当前操作的模型名称及表前缀。......
2023-11-04
Eclipse是IBM的一个商业项目,2001年11月起IBM将Eclipse贡献给开源社区,从此奠定了Eclipse的地位。Eclipse通过PDT插件来提供PHP开发支持,Eclipse PDT能够让编写PHP变得简单和高效,下面将介绍Eclipse PDT的安装和使用。Eclipse PDT的安装有两种方式,一种是直接通过Eclipse的扩展进行安装;另一种是下载带PDT插件的Eclipse。下面将以Eclipse3.5.2作为基础,讲解Eclipse PDT插件的安装过程。如果下载带PDT插件的Eclipse,只需要双击Eclipse启动程序即可,此时Eclipse就提供了完美的PHP编程支持。......
2023-11-04
图12-2 SOAP服务如果服务没有开启,需要在PHP配置文件中开启,如以下代码所示。其中参数1表示SOA服务描述文件,即WSDL文件,该文件是SOAP通信的核心;参数2表示SOAP协议版本,常用的版本有1.0及1.2,本章内容及示例全部基于SOAP 1.2版本实现。使用普通的Firebug等插件不能获取到异常信息,而断点调试是PHP的弱项,所以调试问题将会是SOAP开发首要面对的问题。......
2023-11-04
接下来将使用ThinkPHP创建一个简单的MVC网站应用。通过正确修改上述配置文件信息,现在ThinkPHP就可以操作MySQL数据库了。在ThinkPHP中无论是模型的文件名,还是模型的类名都必须遵循内建的文件规则。图4-24 ThinkPHP MVC运行效果 说明:在ThinkPHP 3.0以前的版本中,视图还有主题的概念,所谓的主题是为了使网站更好地应用多模板、多风格。......
2023-11-04
下面通过示例代码,演示Cookie函数的实际应用。Cookie能够存放包括中文在内的字符,但长度需要控制在225个字符之内。通过前面的学习,相信读者已经能够掌握Session及Cookie的操作了。虽然Cookie存放于客户端,但是并不意味着Cookie不适合用于会员验证等场景。所以很多网站会使用加密的方式存放Cookie用户名及密码,甚至结合软件与硬件签名实现高度安全的Cookie。总而言之,使用Cookie存放登录数据是可行的,但要做好加密与解密相关操作。......
2023-11-04
相关推荐