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 서비스를 제공합니다.
자세한 내용은 느린 비즈니스 처리를 참조하세요.

뷰 파일 구성

접미사는 view.php 의 options 옵션에서만 구성할 수 있습니다.
더 이상 지원하지 않는 사용법

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

올바른 사용법

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

세션 드라이버 네임스페이스 변경

webman은 1.4.0부터 SessionHandler 클래스의 네임스페이스를 변경했습니다. 원래는

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

에서

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

로 변경되었습니다.

업그레이드 후 프로그램이 직접 오류가 발생하지 않도록, Webman\FileSessionHandler 클래스는 일정 기간 유지되며, 향후 버전에서 완전히 제거될 예정입니다.

이 변경 사항은 config/session.php'handler' 구성에 영향을 미칩니다.