🥮
CakePHP4.3からRouter::prefix()はもう非推奨になりました ちょっとroute.phpの書き方が変わってる、、
新規開発でいつものようにrouteの設定を変更しようとしたときに下記のwarningが出た。
CAKE/Core/functions.php:322
`Router::prefix()` is deprecated, use the non-static method `RouterBuilder::prefix()` instead~~
画面のヘッター部分に思いっきり出るのでスルーも出来ないし、現在まだ最新過ぎて海外記事もほぼ無い
一応githubでissueは立ち上がってました
ちなみに解決方法もここからページ飛んでいけばあります
だったら公式にも書いてないの?と思い探したところがっつり書いてありました、、見つけられてないだけでした、、
Routing
Router::connect(), Router::prefix(), Router::plugin(), Router::scope() は非推奨です。 代わりに、対応する非静的な RouteBuilder メソッドを使用してください。
RouteBuilder::resources() は、'braced' プレースホルダーを使用するルートを生成するようになりました。
他も色々非推奨になってるんですね。
解決方法
今まではこう書いてたものを
Router::prefix( 'admin', function( $routes ) {
$routes->connect( '/', [ 'controller' => 'Logins', 'action' => 'index'] );
$routes->fallbacks( 'DassRoute' );
});
静的メソッドで囲うようにする
use Cake\Routing\RouteBuilder;
return static function (RouteBuilder $routes) {
$routes->prefix('Admin', function (RouteBuilder $builder) {
$builder->connect('/', ['controller' => 'Logins', 'action' => 'index']);
$builder->fallbacks();
});
};
多分この件に関しては日本で初の記事だと思う笑
Discussion
ありがとうございます。助かりました!