Hướng dẫn nâng cấp 1.4

Trước khi nâng cấp, hãy thực hiện sao lưu và thực hiện lệnh sau để nâng cấp
composer require workerman/webman-framework ^1.4.7 && composer require webman/console ^1.2.12 && php webman install

Lưu ý
Nếu không thể nâng cấp, có thể là do sử dụng proxy của composer, hãy sử dụng lệnh sau composer config -g --unset repos.packagist để khôi phục sử dụng nguồn dữ liệu chính thức của composer

Tính năng và thay đổi

Plugin ứng dụng

Phiên bản 1.4 hỗ trợ plugin ứng dụng, vui lòng tham khảo thêm Plugin ứng dụng

Tự động định tuyến

Phiên bản 1.4 hỗ trợ nhiều quy tắc thư mục điều khiển phức tạp, ví dụ như

app
app
├── admin
│   └── v1
│       └── v2
│           └── v3
│               └── controller
│                   └── Index.php
└── controller
    ├── v1
    │   └── Index.php
    └── v2
        └── v3
            └── Index.php

Có nghĩa là plugin webman/auto-route không còn cần thiết nữa

Bật/tắt tái sử dụng bộ điều khiển

Phiên bản 1.4 cho phép tắt tái sử dụng bộ điều khiển, trong config/app.php hãy thiết lập 'controller_reuse' => false, như vậy mỗi yêu cầu sẽ khởi tạo một bộ điều khiển mới, nghĩa là mỗi yêu cầu sẽ kích hoạt hàm __construct() tương ứng của bộ điều khiển, nhà phát triển có thể thực hiện một số công việc khởi tạo trước khi xử lý yêu cầu trong hàm khởi tạo.

Do có thể tắt tái sử dụng bộ điều khiển nên plugin webman/action-hook cũng không còn cần thiết nữa.

Bật dịch vụ http

Phiên bản 1.4 hỗ trợ mở nhiều cổng cung cấp dịch vụ http.
Xem thêm Xử lý tác vụ chậm

Cấu hình tệp view

Đuôi chỉ có thể được cấu hình trong tùy chọn options của view.php.
Cách sử dụng không còn được hỗ trợ

use support\view\Raw;
return [
    'handler' => Raw::class,
    'view_suffix' => '.php'
];

Cách sử dụng đúng

use support\view\Raw;
return [
    'handler' => Raw::class,
    'options' => [
        'view_suffix' => '.php'
    ]
];

Thay đổi không gian tên của driver session

Webman từ phiên bản 1.4.0 đã thay đổi không gian tên của lớp SessionHandler, từ

use Webman\FileSessionHandler;  
use Webman\RedisSessionHandler;  
use Webman\RedisClusterSessionHandler;  

sang

use Webman\Session\FileSessionHandler;  
use Webman\Session\RedisSessionHandler;  
use Webman\Session\RedisClusterSessionHandler;

Để tránh việc chương trình gặp lỗi ngay sau khi nâng cấp, lớp Webman\FileSessionHandler vẫn được giữ lại một thời gian, trong các phiên bản tương lai sẽ được loại bỏ hoàn toàn.

Thay đổi này ảnh hưởng đến cấu hình 'handler' trong config/session.php.