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

Làm sao để nâng cấp? Hãy sao lưu dữ liệu trước khi nâng cấp và thực hiện các lệnh sau
composer require workerman/webman-framework ^1.4.7 && composer require webman/console ^1.2.12 && php webman install

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

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

Ứng dụng Plugin

Phiên bản 1.4 hỗ trợ plugin ứng dụng, xem thêm tại ảnh hưởng 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ụ

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

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

Chuyển đổi tái sử dụng điều khiển

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

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

Mở 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 tại Xử lý công việc chậm

Cấu hình tệp xem

Chỉ có thể cấu hình hậu tố trong tùy chọn của tệp view.php.
Không hỗ trợ cách sử dụng cũ

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'
    ]
];

Namespaces của điều khiển phiên

Từ phiên bản 1.4.0, webman đã thay đổi không gian tên lớp SessionHandler, từ

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

thanh

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

Để tránh lỗi trực tiếp sau khi nâng cấp, lớp Webman\FileSessionHandler vẫn được giữ trong một khoảng thời gian, và sẽ bị xóa hoàn toàn trong các phiên bản tương lai.

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