Yii 2.0.6 ออกแล้ว
มานพ กองอุ่น 6 ส.ค. 2015 06:42:06 4,700
หลังจากที่ Yii2 2.0.5 ได้ออกมาเมื่อไม่นานมานี้ที่ปรับปรุงเรื่องความปลอดภัยให้ดียิ่งขึ้น ตอนนี้ Yii2 ได้ออก Version ล่าสุดคือ Yii2 2.0.6 ซึ่งได้เพิ่มและปรับแก้ Bug กว่า 70 อย่าง
สำหรับการปรับแต่งเพิ่มเติมคุณสมบัติโดยรวมได้แก่
การใช้งาน Migration ที่ดีขึ้น
$this->createTable('example_table', [ 'id' => $this->primaryKey(), 'name' => $this->string(64)->notNull(), 'type' => $this->integer()->notNull()->defaultValue(10), 'description' => $this->text(), 'rule_name' => $this->string(64), 'data' => $this->text(), 'created_at' => $this->datetime()->notNull(), 'updated_at' => $this->datetime(), ]);
ซึ่งเป็นคำสั่งที่ใช้งานง่ายมากยิ่งขึ้น
การจัดการ Error
ใน version นี้มีการแก้ไขและเพิ่มประสิทธิภาพการทำงานในการสร้างตัวรายงาน Error และแสดงผล Error
- Yii สามารถ handle HHVM Error
- การแจ้งเตือนต่างๆ สามารถเขียนลงไฟล์ log
- การแสดง 404 Error แสดงหน้า blank เมื่อเข้าถึงโดยตรง
- การแก้ไขตัวจัดการ Error ของ Json::encode() และ Json::decode() ให้ดีขึ้น
- ErroloHandler::logException() ตอนนี้จะใช้เพียง string ซึ่งสามารถใช้ในการปรับแต่ง log targets เพื่อกำหนดรายละเอียดของ Error ได้
การควบคุม ActiveForm จาก JavaScript
สามารถกำหนดข้อความ Error ได้
/ add error $('#contact-form').yiiActiveForm('updateAttribute', 'contactform-subject', ["I have an error..."]); // remove error $('#contact-form').yiiActiveForm('updateAttribute', 'contactform-subject', '');
หรือ อัพเดททั้งฟอร์มโดยการกำหนดรวม
$('#contact-form').yiiActiveForm('updateMessages', { 'contactform-subject': ['Really?'], 'contactform-email': ['I don\'t like it!'] }, 'There are errors!');
เพิ่มประสิทธิภาพคำสั่ง yii message
คำสั่ง yii message รองรับการสร้างไฟล์ .pot
สามารถใช้ nested Yii::t() ได้ ตัวอย่างเช่น
Yii::t('app', 'There are new {messages} for you!', [ 'messages' => Html::a(Yii::t('app', 'messages'), ['user/notificaitons']), ]);
Assets
สามารถกำหนดรายละเอียดว่าอะไร published หรือไม่
class MyAsset extends AssetBundle { public $sourcePath = '@app/assets/js'; public $js = [ 'app.js', ]; public $depends = [ 'yii\web\YiiAsset', ]; public $publishOptions = [ 'except' => '*.ts', // exclude TypeScript sources // 'only' => '*.js', // include JavaScript only ]; }
สามารถปรับแก้เส้นทาง directory
return [ // ... 'components' => [ 'assetManager' => [ 'hashCallback' => function ($path) { return hash('md4', $path); } ], ], ];
Extra session fields
สามารถเก็บข้อมูลแบบ session ได้ง่ายขึ้น และรองรับ yii\web\DbSession
return [ // ... 'components' => [ 'session' => [ 'class' => 'yii\web\DbSession', 'readCallback => function ($session) { return [ 'expireDate' => Yii::$app->formatter->asDate($fields['expire']), ]; }, 'writeCallback' => function ($session) { return [ 'user_id' => Yii::$app->user->id, 'ip' => $_SERVER['REMOTE_ADDR'], 'is_trusted' => $session->get('is_trusted', false), ]; } ], ], ];