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'
設定に影響します。