1. 程式人生 > >yii2.x之web配置

yii2.x之web配置

日誌配置 yii2.x url美化

我這裏是以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)

先寫這麽多吧。以後有時間在和大家分享

本文出自 “coding” 博客,請務必保留此出處http://xtceetg.blog.51cto.com/5086648/1961860

yii2.x之web配置