技术共享
技术共享 Technology sharing 当前位置:首页->技术共享->技术共享

ThinkPHP采用模块和操作的方式来执行,首先,用户的请求会通过单一的入口文件生成一个应用实例,应用控制器(我们称之为核心控制器)会管理整个用户执行的过程,并负责模块的调度和操作的执行,并且在最后销毁该应用实例。 任何一个WEB行为都可以认为是一个模块的某个操作,系统会根据当前的URL来分析要执行的模块和操作,这个分析工作由URL调度器来实现,在Dispatcher调度器中,会根据http://servername/appName/moduleName/actionName/params来获取当前需要执行的项目(appName)、模块(moduleName)和操作(actionName), 一般情况下,appName是不需要(通常是网站的首页,因为项目名称可以在入口文件中指定,这种情况下,appName就会被入口文件替代)。在复杂一点的情况下面,可能还会出现分组(groupName)。ThinkPHP的控制器就是模块类,通常位于项目的Lib\Action目录下。类名就是模块名加上Action后缀,例如:IndexAction类表示Index模块。控制器类必须继承系统的Action基础类,这样才能确保使用Action类内置的方法。系统会自动寻找项目类库Action目录下面的相关类,如果没有找到,则会定位到空模块,否则抛出异常。actionName操作是首先判断是否存在Action类的公共方法,如果不存在则会继续寻找父类中的方法,如果依然不存在,就会寻找是否存在自动匹配的模版文件。如果存在模版文件,那么就直接渲染模版输出。操作方法必须定义为Public类型,否则会报错。并注意操作方法的命名不要和内置的Action类的方法重复。



上一篇:php中配置CKEditor和CKFinder
下一篇:SEO优化教你五步做好站内链接