本篇,咱们的目标有三个:php
原文地址:http://www.voidking.com/2017/...mysql
vkphp ├─app │ ├─ctrl │ ├─model │ ├─smarty │ └─view ├─config ├─core ├─lib ├─log └─public
咱们以前的路由配置、数据库配置都是写在程序中的,修改起来不方便,下面咱们把这些配置都放在配置文件中。git
在core目录中,新建conf.php,内容以下:github
<?php namespace core; class conf{ public function get($name,$file){ /** * 一、判断文件是否存在 * 二、判断配置是否存在 */ $file_path = CONFIG.'/'.$file.'.php'; if(is_file($file_path)){ $conf = include $file_path; if(isset($conf[$name])){ return $conf[$name]; }else{ throw new \Exception('没有配置项'.$name); } }else{ throw new \Exception('找不到配置文件'.$file); } } public function all($file){ $file_path = CONFIG.'/'.$file.'.php'; if(is_file($file_path)){ $conf = include $file_path; return $conf; }else{ throw new \Exception('找不到配置文件'.$file); } } }
在config目录中,新建配置文件route_config.php和db_config.php。sql
<?php return array( 'CTRL'=>'index', 'ACTION'=>'index' );
<?php return array( 'DSN'=>'mysql:host=localhost;dbname=vkphp', 'USER'=>'root', 'PASSWD'=>'' );
修改core目录中的route.php和db.php。数据库
<?php /** * 路由控制 */ namespace core; class route{ public $ctrl='index'; public $action='index'; public $params=array(); public function __construct(){ //echo 'route is ready!'; /** * 一、隐藏index.php * 二、获取URL中的控制器和方法 * 三、获取URL中的参数 */ $this->ctrl = \core\conf::get('CTRL','route_config'); $this->action = \core\conf::get('ACTION','route_config'); // 其余不变 }
<?php namespace core; class db extends \PDO{ public function __construct(){ $conf = \core\conf::all('db_config'); $dsn = $conf['DSN']; $user = $conf['USER']; $passwd = $conf['PASSWD']; try{ parent::__construct($dsn,$user,$passwd); // echo 'database connect success'; }catch (\Exception $e){ echo $e->getMessage(); } } }
在core目录,添加log.php文件,内容以下:json
<?php namespace core; class log{ public function log($message,$file_name){ $log_path = LOG.'/'.$file_name.'-'.date('YmdHis').'.log'; $message = date('Y-m-d H:i:s').' '.$message; file_put_contents($log_path,json_encode($message)); } }
在indexCtrl.php中,添加:app
public function log(){ $log = new \core\log(); $log->log('this is log','log_test'); echo '成功写入日志'; }
访问 http://vkphp.dev/index/log ,便可在log目录下生成日志文件。
若是时间不正确,就在php.ini中搜索 date.timezone
,而后修改时区为:框架
data.timezone="Asia/Shanghai"
或者,直接在程序代码中使用函数ini_set('date.timezone','Asia/Shanghai');
,或者date_default_timezone_set(‘Asia/Shanghai');
。函数
https://github.com/voidking/v...