【空操作处理】
看下列图:

实际情况:我们的User控制器没有hello()这个方法
一个对象去访问这个类不存在的方法,那么它会去访问”魔术方法__call()”
立即学习“PHP免费学习笔记(深入)”;
用户访问一个不存在的操作—》解决:给每个控制器都定义个_empty()方法来处理

第二个解决方法:定义一个空操作

【空模块处理】
我们使用一个类,但是现在这个类还没有被include进来。
我们可以通过自动加载机制处理__autoload(),如果这个自动加载机制也没有找到这个类,就会报错。
即是请求一个空模块
解决一:定义一个空的控制器、空模块

解决方法二:

【给应用增加函数库文件】
在Common文件夹里面,便是放入我们函数库文件的地方

【模块分组】
1. 控制器进行分组设置

2. 视图模板需要分组

3. 配置变量需要分组

4. 做配置config.php

86CMS企业网站系统为智能ASP网站管理程序,适合中小企业自建网站、二次开发使用。本程序具有体积小巧、程序文件结构严谨、界面清爽简单、功能强大、非专业人士使用入门快、中小企业使用投资小等实用特点。本版本为中英繁版本。86CMS企业网站系统中英繁三语版 v1.2 更新1.修正英文版的flash幻灯调用出错问题。2.修正英文版导航菜单设置出错问题。3.增加信息是否显示在中英各版的功能。4.调整首页视
1
【前置操作、后置操作】
控制器里边的方法在被调用的时候,在调用之前、或调用之后可以做一些额外的工作,就称之为前置操作、后置操作
当我们请求这个网址:http://网址/index.php/Admin/Goods/zhanshi,在方法存在的情况下,这个动作在哪发生的,App.class.php 的exec()方法里边

里面的前置操作,能够在zhanshi()被执行时,先执行
里面的后置操作,能够在zhanshi()被执行后,再执行
一个类里边有许多方法,都需要前置和后置操作,应该如何解决?
解决:

【跨模块调用】
实例化一个不存在的类,会通过__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()方法使用

以上就介绍了Thinkphp入门 二 (46),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号