Upgrade Routing

Documentations

변경된 사항

  • CI4에서 자동 라우팅은 기본적으로 비활성화되어 있습니다.

  • CI4에서 더 안전한 새로운 자동 라우팅(개선됨)가 도입되었습니다.

  • CI4에서는 배열로 경로를 설정하여 라우팅을 구성하지 않습니다.

Upgrade Guide

  1. CI3와 같은 방식으로 Auto Routing을 사용하는 경우 자동 라우팅(레거시)을 활성화해야 합니다.

  2. CI3의 플레이스홀더 (:any)는 CI4에서 (:segment)입니다.

  3. 각 라우팅 라인의 CI4 형식으로 구문을 변경하고 app/Config/Routes.php에 추가해야 합니다.

    • $route['journals'] = 'blogs';$routes->add('journals', 'Blogs::index');로 변경. 이는 Blogs 클래스의 index() 메소드로 매핑(mapping) 합니다.

    • $route['product/(:any)'] = 'catalog/product_lookup';$routes->add('product/(:segment)', 'Catalog::productLookup');로 변경

    • $route['login/(.+)'] = 'auth/login/$1';$routes->add('login/(.+)', 'Auth::login/$1'); 로 변경

Code Example

CodeIgniter Version 3.x

Path: application/config/routes.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

$route['posts/index'] = 'posts/index';
$route['teams/create'] = 'teams/create';
$route['teams/update'] = 'teams/update';

$route['posts/create'] = 'posts/create';
$route['posts/update'] = 'posts/update';
$route['drivers/create'] = 'drivers/create';
$route['drivers/update'] = 'drivers/update';
$route['posts/(:any)'] = 'posts/view/$1';

CodeIgniter Version 4.x

Path: app/Config/Routes.php

<?php

namespace Config;

// Create a new instance of our RouteCollection class.
$routes = Services::routes();

// Load the system's routing file first, so that the app and ENVIRONMENT
// can override as needed.
if (file_exists(SYSTEMPATH . 'Config/Routes.php')) {
    require SYSTEMPATH . 'Config/Routes.php';
}

// ...

$routes->add('posts/index', 'Posts::index');
$routes->add('teams/create', 'Teams::create');
$routes->add('teams/update', 'Teams::update');

$routes->add('posts/create', 'Posts::create');
$routes->add('posts/update', 'Posts::update');
$routes->add('drivers/create', 'Drivers::create');
$routes->add('drivers/update', 'Drivers::update');
$routes->add('posts/(:any)', 'Posts::view/$1');