ThinkPHP编码
ThinkPHP采用utf-8编码,这意味着我们的编辑器、数据库等也需要设置uft-8。但是这里一定要注意的是,千万不要用windows自带的记事本打开网站里的任何文件。记事本打开文件后,会自动加上BOM头,严重影响网站,会造成各种未知错误。如果你已用记事本打开过,或者想知道自己的文件中有没有这个东西,最简单的办法是用Notepad++ 打开文件,使用无BOM格式编辑。
ThinkPHP的MVC
WEB开发中的MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。
ThinkPHP是基于M VC设计模式,Tpl文件夹是视图,Lib里的Act
再看控制器,进入Lib/Act
IndexAction类继承了ThinkPHP的核心类Act
其中第三行代码看到IndexAction是继承Act
为什么代码最后没有闭合标签“ ?> ”
PHP闭合标签“?>”在PHP中对PHP的分析器是可选的。如果使用闭合标签,任何由开发者,用户,或者FTP应用程序插入闭合标签后面的空格都有可能会引起多余的输出、php错误、之后的输出无法显示、空白页。因此,所有的php文件应该省略这个php闭合标签,并插入一段注释来标明这是文件的底部并定位这个文件在这个应用的相对路径。这样有利于你确定该文件已结束而不是被删该的。
ThinkPHP的页面输出
IndexAction类index()方法中,$this->show();的意思是直接输出show括号里的内容。我们需要输出页面,而不是直接写的内容,所以show()并不常用,这里可删掉。最常用的输出页面是使用$this->display(),注意display()可带参数。比如你在panda()方法里需输出index.html页面,就可以在panda()方法里写$this->display('index')。可以看到display()的参数就是页面名称。如果就是在index()方法里要输出 index.html页面的话,就可以直接写$this->display()而不用加参数,非常方便。如果我们还有个模块叫做 AdminAction.class.php,与之对应的在Tpl里有个文件夹叫Admin,里面有个index.html页面,而我们需要在 IndexAction.class.php中index()方法里输出那个页面,就可以 写$this->display('Admin:index')。$this->display()的其他用法暂不提。
ThinkPHP的页面调试
ThinkPHP的调试模式与众不同,会牺牲一定的执行效率,带来的方便和除错功能。ThinkPHP开发过程中如果需进行调试工作,可开通调试模式;开启调试模式很简单,只需要在入口文件中增加一行常量定义代码:
<?php
define('APP_DEBUG', true); //开启调试模式
require './ThinkPHP/ThinkPHP.php'; //加载框架入口文件
在完成开发阶段部署到生产环境后,只需要删除调试模式定义代码即可切换到部署模式。
页面Trace:调试模式并不能完全满足我们调试的需要,有时需手动输出一些调试信息。除了本身可借助一些开发工具进行调试外,ThinkPHP还提供了一些内置的调试工具和函数。例如,页面Trace功能就是ThinkPHP提供给开发人员的一个用于开发调试的辅助工具。可实时显示当前页面操作的请求信息、运行情况、SQL执行、错误提示等,并支持自定义显示。页面Trace功能对调试模式和部署模式都有效,不过只能用于有页面输出的情况。但部署模式下,显示的调试信息没有调试模式完整,通常我们建议页面Trace配合调试模式一起使用。要开启页面Trace功能,需要在项目配置文件config.php中设置:
'SHOW_PAGE_TRACE' =>true, // 显示页面Trace信息
该参数默认为关闭,开启后并且你的页面有模板输出的话,页面右下角会显示ThinkPHP的LOGO。