前面介绍过,系统内置的行为是系统正常执行的基础,所以开发人员不需要改动这些扩展。事实上系统已经提供了一系列行为扩展,在项目中使用时,直接配置即可。配置项LIMIT_REFLESH_TIMES表示刷新的间隔,以秒为单位。......
2023-11-04
传统的PHP开发通常都是根据URL请求然后进行后台运算的。在这一过程中,开发人员需要对URL请求进行处理,例如安全检测、URL映射等,只能在运算进行前使用特定的文件进行拦截或处理。在项目小的情况下这不会成为问题,但当项目文件太多时,拦截的效率就明显不足,此时再增加拦截功能就会变得困难。ThinkPHP的行为机制本质上是一种URL拦截处理机制,行为的引入把过去没有生命周期概念的PHP应用添加了生命周期的概念。行为机制将项目拆成若干个功能片段,在应用执行的不同阶段,这些功能片段会被执行,同时执行与之相对应的行为。
系统内置了9大行为,分别为CheckRoute、LocationTemplate、ParseTemplate、ShowPageTrace、ShowRuntime、TokenBuild、ReadHtmlCache、WriteHtmlCache。这些行为在程序运行到不同的阶段时会被触发(可以同时触发多个行为),如图11-8所示。
图11-8 ThinkPHP行为执行过程(www.chuimin.cn)
内置行为是确保系统能够运行的基础,一般情况下开发人员不需要扩展内置的行为。Behavior类是所有行为类库的基类,系统允许开发人员直接继承该类实现行为扩展。如图11-8所示,项目首先执行的行为标签是app_init,一直到app_end标签,中间的标签有些有对应的行为,有些没有。自定义行为扩展通常就是定义在这些只有标签没有行为的运行阶段中。
这里有一个非常重要的标签概念。所谓的标签事实上就是行为的别名,项目不能直接执行行为类库,只能执行标签(标签也可以自定义),一个标签可以对应若干个行为类,如果需要调用扩展行为(包括系统内置的扩展行为),可以直接在Conf/tags.php文件中定义标签执行的行为类。
标签允许同时出现,默认情况下,后面出现的标签会覆盖前面出现的标签。如果标签为空,则系统放弃执行,例如'app_end'=>array('')。接下来将结合示例代码,详细介绍内置行为的使用。
有关PHP MVC开发实战的文章
前面介绍过,系统内置的行为是系统正常执行的基础,所以开发人员不需要改动这些扩展。事实上系统已经提供了一系列行为扩展,在项目中使用时,直接配置即可。配置项LIMIT_REFLESH_TIMES表示刷新的间隔,以秒为单位。......
2023-11-04
ThinkPHP经过了六年的发展,当前最新版本为3.0。最新版本提供了NoSQL、云技术、分布式支持,使得ThinkPHP的功能更加完善,能够满足大型Web应用的开发需求。ThinkPHP定位于轻量级,快速和简单是该框架的主要特点,这在本书后面的章节内容中将会明显地感受到。接下来首先对ThinkPHP处理MVC的流程作一个简单的介绍,加深对ThinkPHP的直观认识。......
2023-11-04
ThinkPHP的一大特点就是扩展灵活,同样行为也是可以自定义扩展的。接下来将深入介绍自定义行为扩展的实现。上述代码是一个名为AutoCheckUserLogin的自定义行为类。最后还需要确保自定义行为类继承于Behavior基类。事实上,AutoCheckUserLogin配置项并不是必需的,也就是说在配置时,自定义行为就已经能够正常运行了,配置项只不过用于实现灵活的配置。此时,再次访问项目,只有Index控制器下的页面受AutoCheckUserLogin自定义行为影响,其他页面则不受影响。......
2023-11-04
和其他PHP MV框架一样,要使用ThinkPHP必须首先要安装和部署框架文件。ThinkPHP支持多种数据库驱动,包括PDO套件,接下来将通过ThinkPHP实现一个简单的MVC应用。这里将下载的版本为ThinkPHP 3.0,解压后ThinkPHP目录结构如图4-22所示。图4-23 ThinkPHP成功初始化项目......
2023-11-04
接下将继续以ThinkPHP 3.0为例,详细介绍在MVC的中SOAP服务端开发,步骤如下。然后在home项目中创建api控制器,该控制器用于SOAP服务绑定,首先创建article.wsdl服务绑定,如以下代码所示。图12-15 WSDL绑定出错接下来需要在article.wsdl文件中创建相应的操作及服务绑定。并且建立http://tp.localhost/index.php/api/Article服务绑定地址。至此,一个article.wsdl SOAP服务就创建完成了,接下来就可以使用专业的SOAP测试工具或者在PHP中直接调用该服务。......
2023-11-04
接下来将使用ThinkPHP创建一个简单的MVC网站应用。通过正确修改上述配置文件信息,现在ThinkPHP就可以操作MySQL数据库了。在ThinkPHP中无论是模型的文件名,还是模型的类名都必须遵循内建的文件规则。图4-24 ThinkPHP MVC运行效果 说明:在ThinkPHP 3.0以前的版本中,视图还有主题的概念,所谓的主题是为了使网站更好地应用多模板、多风格。......
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已经完美地解决了读写分离功能,本节将会详细介绍。本例中主数据库的ip地址为192.168.2.1;从数据库的ip地址为192.168.2.2,读者可以使用虚拟机来模拟上述环境。配置完成后,保存配置文件,重启MySQL数据库。接下来将结合ThinkPHP实现数据的读写分离。ThinkPHP提供了完善的读写分离功能,开发人员不需要手动切换数据库。......
2023-11-04
相关推荐