Open Source Project XpressEngine is? The CMS to help produce and publish content.
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
Package

Routing

by XEJapan posted Nov 22, 2015
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

Routing

개요

Routing 은 사이트 내부의 URL 을 관리하는 역할을 수행합니다. Menu 패키지와 밀접한 관������ 있으��, Site 와의 연관성도 존재합니다. Menu 로 부터 생성된 모듈 Instance 는 link 정보�� 담고 있는데, 이 때의 link 가 사용자��� 사이트에 접속했을 때 확인하��� 되는 URL 이 됩니다. 따라서 Routing 패키지는 사이트의 Instance 정보와 모듈의 정보�� 담고 있다고 할 수 있습니다. Menu 와 중복적인 부���이라고 할 수 있������ Menu 와는 다르��� 사이트 내부에서 동작하는 URL 만을 관리합니다. 또한 Routing 패키지는 Illuminate Routing 에 Route 들을 등록할 수 있��� 인터페이스�� 제공합니다.

목적

사이트맵에서 MenuItem을 추���하였을 때 새���운 인스턴스가 생성됩니다. 이 때 생성된 인스턴스는 URL 정보�� 담고 있는데, 사용자��� 사이트에 접속했을 때 해당 URL 에 따라서 어떠한 플러그인 모듈이 동작해야 되는��� 결정됩니다. Routing 은 URL 에 따라 인스턴스�� 판���하��� 해당 플러그인 모듈이 실행될 수 있도��� 하는 역할을 수행합니다.

구성

Routing 은 InstanceRoute 라고 하는 Entity 로 구성됩니다. 이 Entity는 InstanceId, Module Id, Site Key, Url 정보�� 담고 있습니다. 이 때 URL 은 host �� 제외한 segments 의 정보입니다.

Route 추��� 인터페이스

Routing 패키지는 Illuminate Router 에 추���적으로 등록할 수 있는 인터페이스�� 제공합니다. 이렇��� 되면 XE 에서 Router �� 등록하는 방���에 다음의 3가��� 형식이 추���됩니다.

  • Route::instance 플러그인의 모듈에서 인스턴스별 Route 동작을 등록할 때 사용됩니다.
Route::instance(self::getId(), function () {

    Route::get('/', ['as' => 'index', 'uses' => 'UserController@index']);
    Route::put('/preview', ['as' => 'preview', 'uses' => 'UserController@preview']);

}, ['namespace' => 'Xpressengine\MyPlugin\SomeModule\Controllers']);
  • Route::settings 플러그인에서 별도의 관리자 영역에 해당하는 Route�� 등록할 때 사용됩니다.
Route::settings(self::getId(), function () {
    Route::get('edit/{instanceId}', ['as' => 'manage.myPlugin.someModule.edit', 'uses' => 'SettingsController@edit']);
    Route::put(
        'update/{instanceId}',
        ['as' => 'manage.myPlugin.someModule.update', 'uses' => 'SettingsController@update']
    );

}, ['namespace' => 'Xpressengine\MyPlugin\SomeModule\Controllers']);
  • Route::fixed 플러그인에서 고유한 경������ 지정된 Route�� 등록할 때 사용됩니다.
 - Route::fixed('KEY', function(){ } );

연관 데이터베이스

Routing 패키지는 instanceRoute 데이터베이스 테이블을 사용합니다.


List of Articles
Category Subject Date Last Update
XE1 관리자 페이지 시작 2016.01.22 2016.01.22
XE core navigation XE core 둘러보기 2015.12.29 2015.12.29
Install and Uninstall XE Core 제거 2015.12.29 2015.12.29
Install and Uninstall XE core 설치 2015.12.29 2015.12.29
XE3 Interception 가이드 2015.12.29 2015.12.29
Install and Uninstall 서��� 환경 설정 2015.12.19 2015.12.19
Install and Uninstall インストールする前に 2015.12.19 2015.12.19
About XE1 용어 정리 2015.12.19 2015.12.19
About XE1 XE 기능 및 특징 2015.12.19 2015.12.19
About XE1 XE란 무엇인가? 2015.11.22 2015.11.22
Package Trash 2015.11.22 2015.11.22
Package Translation 2015.11.22 2015.11.22
Package ToggleMenu 2015.11.22 2015.11.22
Package Temporary 2015.11.22 2015.11.22
Package Tag 2015.11.22 2015.11.22
Package Storage 2015.11.22 2015.11.22
Package Site 2015.11.22 2015.11.22
Package Settings 2015.11.22 2015.11.22
Package Seo 2015.11.22 2015.11.22
Package Routing 2015.11.22 2015.11.22
Board Pagination Prev 1 2 3 Next
/ 3