thinkphp入门 二 (46),thinkphp入门46【空操作处理】看下列图:
用户访问一个不存在的操作—》解决:给每个控制器都定义个_empty()方法来处理
第二个解决方法:定义一个空操作
【空模块处理】
我们使用一个类,但是现在这个类还没有被include进来。
我们可以通过自动加载机制处理__autoload(),如果这个自动加载机制也没有找到这个类,就会报错。
即是请求一个空模块
解决一:定义一个空的控制器、空模块解决方法二:
【给应用增加函数库文件】
在common文件夹里面,便是放入我们函数库文件的地方
【模块分组】
1. 控制器进行分组设置2. 视图模板需要分组
3. 配置变量需要分组4. 做配置config.php
【前置操作、后置操作】
控制器里边的方法在被调用的时候,在调用之前、或调用之后可以做一些额外的工作,就称之为前置操作、后置操作
当我们请求这个网址:http://网址/index.php/admin/goods/zhanshi,在方法存在的情况下,这个动作在哪发生的,app.class.php 的exec()方法里边
一个类里边有许多方法,都需要前置和后置操作,应该如何解决?
解决:
【跨模块调用】
实例化一个不存在的类,会通过__autoload()自动加载机制。
tp框架的__autoload()在哪?在think.class.php
通过a()方法实例化控制器对象
a(‘模块控制器’) 例如:a(‘goods’)
a(‘分组/控制器’) 例如:a(‘home/ucenter’);
a(‘项目://分组/控制器’) 例如:a(‘shop://home/ucenter’);
a()方法里边有嵌套调用import()方法,该方法帮助我们获得对应的控制器其,并require引入。a()方法顺便直接new 实例化对象
r(“项目://分组/控制器/操作”)方法
是把控制器的引入、实例化对象、方法的调用都给继承好了。
r(‘模块控制器/操作’) 例如:a(‘goods’)
r(‘分组/控制器/操作’) 例如:a(‘home/ucenter/members’);
r(‘项目://分组/控制器/操作’) 例如:a(‘shop://home/ucenter/members’);
r()方法里边调用a()方法
a()方法里边调用import()方法
a()方法使用r()方法使用
http://www.bkjia.com/phpjc/1014184.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1014184.htmltecharticlethinkphp入门 二 (46),thinkphp入门46 【空操作处理】 看下列图: 用户访问一个不存在的操作》解决:给每个控制器都定义个_empty()方法来处...