2.2 配置
基本配置
DoitPHP项目所用的所有的配置文件都存放在配置目录(config)下。application.php为项目的主配置文件,常用的配置选项由此文件来控制。如:数据库连接参数。打开此文件,发现大片的代码全都注释掉了,没有设置什么,当配置选项没有设置时,DoitPHP将使用框架默认的选项。仔细阅读这些代码,你就会明白常用的配置参数的设置了。
1、数据库连接参数设置
注:DoitPHP的数据库连接统一使用PDO(这才是王道),在关系数据库连接上DoitPHP也仅支持PDO。
下面就以MySql为例,详细说明下数据库连接参数设置。或许从主配置文件的注释说明中你已经知晓怎么去做,将下面的代码去掉注释符,将配置参数值设置为所要具体连接的数据库参数即可。
/*$config['db'] = array(
'dsn' => 'mysql:host=localhost;dbname=yourDbname',
'username' => 'yourUsername',
'password' => 'yourPassword',
'prefix' => '',
'charset' => 'utf8',
);*/
代码如下:
$config['db'] = array(
'dsn' => 'mysql:host=yourHost;dbname=yourDbname',
'username' => 'yourUsername',
'password' => 'yourPassword',
'prefix' => '',
'charset' => 'utf8',
);
注:prefix为数据表前缀。如果没有则为空,或直接把这个参数删掉。charset为数据库编码,默认为utf8。或为gbk,则自行更改。
若所开发的PHP项目是一个大项目,需要用到MySql的主从分离。对于MySql的主库及从库连接设置,稍稍复杂一点,其实注释说明中,也已经有相关的实例说明,其设置具体参数内容如下:
$config['db'] = array(
'master' => array(
'dsn' => 'mysql:host=yourHost;dbname=yourDbname',
'username' => 'yourUsername',
'password' => 'yourPassword',
),
'slave' => array(
'dsn' => 'mysql:host=yourHost;dbname=yourDbname',
'username' => 'yourUsername',
'password' => 'yourPassword',
),
'prefix' => '',
'charset' => 'utf8',
);
注:master为主库参数配置,slave为从库参数配置。若从库有多台,则将slave设置为多重数组。具体内容,请自悟。
2、设置Cookie或Session的生存周期
若设置cookie的生存周期,将主配置文件中的 //$config['cookie']['expire'] = 3600; 注释符("//")去掉,将3600改为你所要设置的周期时间即可。同理,设置session的生存周期,将 //$config['session']['expire'] = 3600;去掉注释符,将参数值更改为所需值的即可。
3、开启日志记录功能
为了保证DoitPHP的运行效率,出于性能考虑,日志记录这一功能默认是关闭的。若你项目需要,则可以通过主配置文件的设置来将此功能开启。 其法:将主配置文件中 //$config['application']['log'] = true; 去掉前面的注释符("//")即可。
4、开启Debug调用功能
所谓Debug调用,就是在开发的程序调试运行中,可以优雅地显示错误信息。同时将数据库所执行的Sql语句写入日志,以方便开发人员对程序及数据库进行优化。此功能只适用于开发环境(开发模式),在生产环境中万不可使用,且不说影响程序运行效率,还会暴露服务器的敏感信息。所以这一功能,默认也是关闭的。若开发过程中需要开启使用,只需将主配置文件中 //$config['application']['debug'] = true; 去掉注释符("//")即可。切记,代码正式上线前(代码部署到生产环境),一定要把这功能关闭,方法:将刚才去掉注释符的代码注释掉,或将参数值改为false。
5、路由网址重写(Rewrite)功能
路由网址重写功能,即Rewrite功能,通常用来将项目访问网址中的入口文件:index.php隐藏掉。这样做,一方面对网站的SEO优化有利,另一方面提升网站安全。Rewrite功能默认也是关闭的。若想开启,只需将主配置文件中 //$config['application']['rewrite'] = true; 去掉注释符("//"),还需要配置web服务器配置文件。
若web服务器软件为:Nginx,需要在其配置文件server{ }中加入下面代码,重启Nginx即可。
try_files $uri $uri/ /index.php?$uri&$args;
if (!-f $request_filename) {
rewrite "^/(.*)$" /index.php/$1 last;
}
若web服务器软件为:Apache,需要创建rewrite引导文件:.htaccess,文件放置于项目目录中,与入口文件:index.php同一个目录。文件内容为:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)\$ index.php [NC,L]
其实Rewrite功能,不仅仅是隐藏掉入口文件,还有更多的应用,以及更多的设置将在后面的文档内容中详细说明