ThinkPHP的动作和一个普通的PHP类方法并没有多大区别,它能够直接输出信息,不需要借助模板,也不需要分配变量,开发人员可以使用标准的PHP代码输出HTML等信息。动作的设计原则是用来做逻辑运算,所以应尽量避免在动作中混入HTML等非PHP代码,Action基类本身提供了display方法,用于结果输出。......
2023-11-04
在ThinkPHP中,控制器是允许互相调用的。大体上可分为两种调用方式:一种为当前项目控制之间的调用;另一种为跨项目的控制器调用。被调用的控制器在初始化后,就可以当成一个实例类来使用。为了便于使用,系统还提供2个快捷函数处理控制器的调用,下面结合示例代码分别介绍这2个快捷函数的使用方式。
1.A函数
A函数用于实例化控制器,它的作用相当于new,A函数不仅支持调用本项目内的控制器,还支持跨项目调用控制器,如以下代码所示。
如上述代码所示,A("Member")表示实例化本项目中的Member控制器;然后调用Member控制器中的user方法,该方法代码如下所示。
控制器被实例化后得到的是实例对象,如果运行上面代码,假设当前模板分类中没有test.html(即Tpl/Index/test.html)那么系统将会抛出错误。因为在user方法中使用了$this->display(),这就意味着在当前动作(test动作)中输出模板(因为此处的user动作已被实例化,所以user并不能作为动作,而是作为类方法)。
如果需要调用的控制器不在当前项目下,那么需要使用“://”分隔符。此外,如果项目使用模块分组方式,需要在控制器前加上“/”分隔符,跨项目控制器的调用方式如以下代码所示。
2.R函数(www.chuimin.cn)
A函数只是负责调用控制器(实例化类),R函数提供更加简洁的操作。R函数可以在调用控制器时指定调用方法(动作),简化了操作步骤。R函数的使用格式如下。
R('[项目名://][分组名/]模块名/操作名',array('参数1','参数2'…))
下面将使用示例代码,演示R函数的使用。
如上述代码所示,表示实例化当前项目Member控制器,然后调用该控制器下user动作。如果需要调用跨项目的控制器,需要在控制器前加上“://”分隔符,如以下代码所示。
上述代码表示实例化Admin项目下的Member控制器,然后调用user动作。如果使用模块分组方式部署应用,那么需要在控制器前加上“/”分隔符。
有关PHP MVC开发实战的文章
ThinkPHP的动作和一个普通的PHP类方法并没有多大区别,它能够直接输出信息,不需要借助模板,也不需要分配变量,开发人员可以使用标准的PHP代码输出HTML等信息。动作的设计原则是用来做逻辑运算,所以应尽量避免在动作中混入HTML等非PHP代码,Action基类本身提供了display方法,用于结果输出。......
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对数据的插入、更新等都做了高度封装,系统提供create方法,用于创建数据对象。图7-2 create创建数据流程2.create数据操作前面介绍了create方法的运行过程,读者只需要理解即可,在实际应用开发中创建数据的过程是极其简单的。下面将结合示例代码,介绍create方法的实际应用,加深对create方法的认识。一切完成后,此时数据对象存放于内存中,使用add方法进行提交,完成整个create创建数据的过程。......
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
ajaxReturn方法返回结果受DEFAULT_AJAX_RETURN配置项影响,默认值为json,可选的值有json、eval及xml。表9-1 ajaxReturn方法参数Model类中的select或find方法返回的数组原本就是关联数组数据,所以ajaxReturn能够很好地将结果转换为XML文档,如以下代码所示。......
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
相关推荐