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