一 项目配置
打开项目文件夹下的/ThinkPHP/Conf/convention.php文件,在该文件中,有很多配置项,其中包含了对于数据库的配置,如下图:
图1
然后我们在创建的前台项目的控制器中(前台项目/Lib/Action/IndexAction),index方法写入如下代码:
图2
在浏览器中运行,可以看到运行结果,就是图1中,DB_USER所对应的键值“root”。
接下来,修改“前台项目/Conf/Config.php”,在Array数组中,加入如下内容:
图3
此时,在在浏览器中运行Index控制器的index()方法,结果仍为root,这是因为ThinkPHP在第一次运行项目时,生成缓存文件(该缓存文件在“前台项目文件目录/Runtime/~runtime.php”),那么在下一次运行该项目时,就不会再重新读取“Config.php”配置文件,而是直接读取缓存文件。所以我们上面的更改不会生效。在调试阶段,为了使修改内容及时出现,我们可以在前台项目的单入口文件中将调试模式开启,开启方法如下:
<?php
define('APP_NAME','Index'); //定义项目名称
define('APP_PATH','./Index/');//定义项目路径
define('APP_DEBUG','TRUE'); //启动调试模式,使修改及时呈现
include './ThinkPhP/ThinkPHP.php';//引入核心文件
?>
为了提高项目的灵活性,我们通常不会修改框架ThinkPHP中的配置文件convention.php,而是应该将项目的配置项写在项目的config.php文件中。
二 前后端项目公共配置项
请参考(ThinkPHP学习之ThinkPHP运行,配置)生成一个名为Admin的后台项目,该项目的单入口文件为Admin.php。
配置结束后,我们的项目文件夹中就含有了两个项目,分别为:前台项目Index和后台项目Admin,并且含有连个单入口文件,分别为:Index.php和Admin.php。对于后台项目文件,若在配置过程中,需要像(一 项目配置)中说的步骤去修改Config.php文件,但是对于同一个项目的前后台项目,他们可能有很多相同的配置项,但是我们不能修改框架的convention.php,那么我们难道只能将相同的配置项配置两次?其实,不然,接下来就来介绍一下上面问题的解决方法:创建公共配置文件。
我们在项目文件夹下创建Conf文件夹(与前后台项目文件夹同级),并在Conf文件夹下创建config.php文件,在该文件中写入前后台公共配置项,例如:
图 4
并修改前后台项目的config.php文件,修改成:
图 5 后台配置文件
图 6 前台配置文件
可以看到,我们在$config变量中加入相应项目与其他项目不同的配置,然后与公共配置项合并,并将公共配置项中,相同的配置项覆盖(array_merge函数)。
至此,就大功告成了!
在数据库中建立think数据库,并创建名为hd_user的表,表中创建两个属性分别为id和username。我们分别在前后台的Index控制器的index()方法中写入:
图 7
图 8
在浏览器中分别运行前后台,我们可以看到username的输出结果不相同,而数据库查询到相同的结果。