Browsed by
标签:Yii2

php-7.0.2 session_regenerate_id 报错

php-7.0.2 session_regenerate_id 报错

本来打算升级生产服务器的php版本到7.0.2,结果测试发现在使用memcached存储session的时候session_regenerate_id报错。

session_start();
session_regenerate_id(false);

报错信息

Catchable fatal error: session_regenerate_id(): Failed to create(read) session ID: memcached (path: 4f522740705c11e4.m.cnhzaliqshpub001.ocs.aliyuncs.com:11211) in 

由于我们的开发框架是yii2,yii2中是这样调用的

public function regenerateID($deleteOldSession = false)
{
    @session_regenerate_id($deleteOldSession);
}

对,yii2使用了@符号抑制了错误信息,导致我在查找问题的时候花了3个小时逐行调试,因为没报500错误,但是没有什么错误信息,坑啊!

Yii2 form布局

Yii2 form布局


在yii2中使用gii生成是表彰格式是完全垂直的,如果想需要label和input平等的,可以这样修改代码

use yii\helpers\Html;
use yii\widgets\ActiveForm;

$form = ActiveForm::begin([
    'id' => 'login-form',
    'options' => [
        'class' => 'form-horizontal',
    ],
    'fieldConfig' => [
        'template' => '{label}<div class="col-lg-6">{input}</div>{hint}{error}',
        'labelOptions' => [
            'class' => 'control-label col-lg-2',
        ],
    ]
]) ?>
<?= $form->field($model, 'username') ?>
<?= $form->field($model, 'password')->passwordInput() ?>

    <div class="form-group">
        <div class="col-lg-offset-1 col-lg-11">
            <?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
        </div>
    </div>
<?php ActiveForm::end() ?>
Yii2-log组件

Yii2-log组件


添加log组件配置

'log' => [
    'traceLevel' => YII_DEBUG ? 3 : 0,
    'targets' => [
        'file' => [
            'class' => 'yii\log\FileTarget',
            'levels' => YII_DEBUG ? ['error','warning','info','trace','profile'] : ['error', 'warning'],
            'categories' => [],
            'logFile' => getenv('LOG_FILE_PATH')?:null,
            'logVars'=> [],
        ],
    ],

],

记录信息Yii::error,Yii::warning,Yii::info等。做开发api时可以在有错误时输出到页面。

$messages = Yii::getLogger()->messages;
print_r($messages);