1.4 คู่มือการอัพเกรด
ก่อนการอัพเกรดโปรดทำการสำรองข้อมูล และดำเนินการคำสั่งต่อไปนี้เพื่ออัพเกรด
composer require workerman/webman-framework ^1.4.7 && composer require webman/console ^1.2.12 && php webman install
หมายเหตุ
หากไม่สามารถอัพเกรดได้ อาจเกิดจากการใช้ตัวกลางของ composer โปรดใช้คำสั่งต่อไปนี้composer config -g --unset repos.packagist
เพื่อคืนค่าการใช้แหล่งข้อมูลของ composer อย่างเป็นทางการ
ฟีเจอร์และการเปลี่ยนแปลง
ส่วนขยายแอปพลิเคชัน
เวอร์ชัน 1.4 สนับสนุนส่วนขยายแอปพลิเคชัน สามารถดูรายละเอียดเพิ่มเติมได้ที่ ส่วนขยายแอปพลิเคชัน
การกำหนดเส้นทางอัตโนมัติ
เวอร์ชัน 1.4 สนับสนุนกฎไดเรกทอรีควบคุมที่ซับซ้อนต่างๆ เช่น
app
app
├── admin
│ └── v1
│ └── v2
│ └── v3
│ └── controller
│ └── Index.php
└── controller
├── v1
│ └── Index.php
└── v2
└── v3
└── Index.php
กล่าวคือ ส่วนขยาย webman/auto-route
ไม่จำเป็นต้องใช้แล้ว
สวิตช์การใช้ซ้ำของตัวควบคุม
เวอร์ชัน 1.4 อนุญาตให้ปิดการใช้ซ้ำของตัวควบคุม โดยการตั้งค่าใน config/app.php
เป็น 'controller_reuse' => false,
นั่นหมายความว่าแต่ละคำขอจะถูกสร้างตัวควบคุมใหม่ ซึ่งในการมอบหมายแต่ละคำขอจะเรียกใช้ฟังก์ชัน __construct()
ของตัวควบคุมที่เกี่ยวข้อง ซึ่งนักพัฒนาสามารถดำเนินการบางอย่างภายในฟังก์ชันสร้างเพื่อให้การเริ่มต้นที่จำเป็นก่อนการประมวลผลคำขอ
เนื่องจากสามารถปิดการใช้ซ้ำของตัวควบคุม ได้ ดังนั้นส่วนขยาย webman/action-hook
จึงไม่ต้องใช้แล้ว
เปิดบริการ http
เวอร์ชัน 1.4 สนับสนุนการเปิดพอร์ตหลายพอร์ตเพื่อเสนอการบริการ http
ดูรายละเอียดที่ การประมวลผลธุรกิจที่ช้า
การกำหนดไฟล์มุมมอง
นามสกุลสามารถกำหนดได้เฉพาะในตัวเลือก options ของ view.php
รูปแบบที่ไม่สนับสนุนแล้ว
use support\view\Raw;
return [
'handler' => Raw::class,
'view_suffix' => '.php'
];
รูปแบบที่ถูกต้อง
use support\view\Raw;
return [
'handler' => Raw::class,
'options' => [
'view_suffix' => '.php'
]
];
การเปลี่ยนแปลงใน namespace ของ session driver
webman เปลี่ยน namespace ของคลาส SessionHandler
ตั้งแต่เวอร์ชัน 1.4.0 จากเดิม
use Webman\FileSessionHandler;
use Webman\RedisSessionHandler;
use Webman\RedisClusterSessionHandler;
เปลี่ยนเป็น
use Webman\Session\FileSessionHandler;
use Webman\Session\RedisSessionHandler;
use Webman\Session\RedisClusterSessionHandler;
เพื่อหลีกเลี่ยงโปรแกรมแจ้งข้อผิดพลาดโดยตรงหลังการอัพเกรด คลาส Webman\FileSessionHandler
ยังคงถูกเก็บไว้ในช่วงระยะเวลาหนึ่งและจะถูกลบออกในเวอร์ชันในอนาคต
การเปลี่ยนแปลงนี้ส่งผลต่อการกำหนดค่า 'handler'
ใน config/session.php