我这里是以basic版为基础讲解的。但高级版应该也是一样的。基本版配置文件config/web.php。
yii默认的控制器是site,这里要改成我们习惯的index,只需要在$config这个数组里面加上
<?php $config=[ ...... ‘defaultRoute‘ => ‘index‘, ...... ]
你也可以改成其它你想要的默认控制器。
url美化
$config=[ ...... ‘defaultRoute‘ => ‘index‘, ‘components‘ => [ ‘urlManager‘ => [ ‘enablePrettyUrl‘ => true, ‘showScriptName‘ => false, ‘enableStrictParsing‘ => false, ‘rules‘ => [], ‘suffix‘ => ‘.html‘, ], ] ...... ]
enablePrettyUrl属性:是必需的,因为它可以切换漂亮的URL格式。
showScriptName属性:是否在构造的URL中显示条目脚本名称。 默认为true。 此属性仅在$ enablePrettyUrl为true时使用。为true的时候创建url,index.php/user/100。为false的时候创建url,/user/100
enableStrictParsing:此属性确定是否启用严格请求解析。 如果启用了严格的解析,则传入的请求的URL必须与至少一个规则相匹配才能被视为有效的请求,否则将抛出一个yii \ web \ NotFoundHttpException。 如果禁用了严格的解析,当没有任何规则与请求的URL匹配时,URL的路径信息部分将被视为请求的路由。
rules:此属性包含指定如何解析和创建URL的规则列表。 您应该使用的主要属性是为了创建格式满足特定应用程序要求的URL。
suffix:enablePrettyUrl为true时使用的URL后缀。 例如,可以使用“.html”,以便URL看起来像指向静态HTML页面。 此属性仅在$ enablePrettyUrl为true时使用。
常规的url美化的配置就这些了。在就是nginx是添加上rewrite
location /{ try_files $uri $uri/ /index.php?$args; }
日志配置
$config=[ ...... ‘defaultRoute‘ => ‘index‘, ‘components‘ => [ ‘urlManager‘ => [ ‘enablePrettyUrl‘ => true, ‘showScriptName‘ => false, ‘enableStrictParsing‘ => false, ‘rules‘ => [], ‘suffix‘ => ‘.html‘, ], ‘log‘ => [ ‘traceLevel‘ => YII_DEBUG ? 3 : 0, ‘targets‘ => [ [ ‘class‘ => ‘yii\log\FileTarget‘, ‘levels‘ => [‘error‘, ‘warning‘], ‘logVars‘ => [‘_GET‘, ‘_POST‘], ‘logFile‘ => "@runtime/logs/".date("Y-m-d").".log" ], ], ], ] ...... ]
yii保存日志有几种方式
- yii\log\DbTarget:在数据库表里存储日志消息。
- yii\log\EmailTarget:发送日志消息到预先指定的邮箱地址。
- yii\log\FileTarget:保存日志消息到文件中.
- yii\log\SyslogTarget:通过调用PHP函数
syslog()
将日志消息保存到系统日志里。
这里我只说说我自己最常用的保存日志消息到文件中。其它的以后有时间,在专一个博客来讲吧。
traceLevel:设置了 yii\log\Dispatcher::traceLevel 的层级,假如 YII_DEBUG
开启则是3,否则是0。 这意味着,假如 YII_DEBUG
开启,每个日志消息在日志消息被记录的时候, 将被追加最多3个调用堆栈层级;假如 YII_DEBUG
关闭, 那么将没有调用堆栈信息被包含。
class:说明选择哪种方式应用日志。我这里是用的文件保存。
levels:指定哪个消息的严重程度和分类目标应该处理。
logVars:默认包含$_GET
, $_POST
, $_FILES
, $_COOKIE
,$_SESSION
和 $_SERVER
这些全局的上下文请求。我这里配置的是只记录get和post请求的上下文,你可以将 logVars
配置成一个空数组来完全禁止上下文信息包含,只在日志里记录levels定义的信息。
logFile:日志的路径及文件名。默认的是app.log。我这里配置成按每天的时间生成日志。(2017-09-01.log)
先写这么多吧。以后有时间在和大家分享