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
Package Captcha 2015.11.22 2015.11.22
Package Category 2015.11.22 2015.11.22
Package Comment 2015.11.22 2015.11.22
Package Config 2015.11.22 2015.11.22
Package Counter 2015.11.22 2015.11.22
Package Database 2015.11.22 2015.11.22
Package Document 2015.11.22 2015.11.22
Package DynamicField 2015.11.22 2015.11.22
View Elements FrontEnd 2015.11.22 2015.11.22
Package Http 2015.11.22 2015.11.22
Package Interception 2015.11.22 2015.11.22
XE3 Interception 가이드 2015.12.29 2015.12.29
Package Keygen 2015.11.22 2015.11.22
Package Media 2015.11.22 2015.11.22
Package Member 2015.11.22 2015.11.22
Package Menu 2015.11.22 2015.11.22
Components Module 2015.11.22 2015.11.22
Package Permission 2015.11.22 2015.11.22
Plug-in Plugin 2015.11.22 2015.11.22
View Elements Presenter 2015.11.22 2015.11.22
Board Pagination Prev 1 2 3 Next
/ 3