class PluginHandler

XE에 등록된 플러그인의 전체적인 관리를 담당한다.

Constants

STATUS_ACTIVATED

활성화 된 상태

STATUS_DEACTIVATED

비활성화 된 상태

PLUGIN_VENDOR_NAME

플러그인이 package name에 지정해야 하는 vendor

Properties

protected string $pluginsDir the path of directory that all plugins is located 플러그인이 등록돼 있는 디렉토리 경로. 모든 플러그인은 이 디렉토리 안에 존재한다.
protected PluginCollection $plugins 등록된 플러그인을 목록
protected PluginProvider $provider
protected string $bootingPlugin 현재 부팅중인 플러그인의 id
protected ConfigManager $config 플러그인 관련 설정 정보를 저장함.
protected string $configKey 플러그인 관련 설정 정보의 저장 키
protected Factory $viewFactory view factory
protected PluginRegister $register register
private Application $app laravel application

Methods

__construct(string $pluginsDir, PluginCollection $plugins, PluginProvider $provider, Factory $viewFactory, PluginRegister $register, Application $app)

생성자. 플러그인 관리에 필요한 요소들을 주입받는다.

void
setConfig(ConfigManager $config)

config manager를 설정한다.

string
getPluginsDir()

plugin directory 경로를 반환한다.

void
setPluginsDir(string $path)

plugin directory 경로를 지정한다.

array
getUnresolvedComponents(string|null $plugin = null)

get Unresolved Components

void
activatePlugin(string $pluginId)

주어진 플러그인을 활성화한다. 활성화된 플러그인 목록은 XE에 저장된다.

void
deactivatePlugin(string $pluginId)

주어진 플러그인을 비활성화한다.

void
updatePlugin(string $pluginId, bool $updateStatus = true)

플러그인을 업데이트한다.

void
uninstallPlugin(string $pluginId)

주어진 플러그인을 uninstall 한다.

void
bootPlugins()

활성화 된 플러그인을 부팅한다. 이 메소드는 모든 요청에서 항상 호출되며, 활성화 된 모든 플러그인의 boot()메소드를 호출한다.

void
registerPlugin(PluginEntity $entity)

플러그인에서 제공하는 요소들을 바인딩한다.

void
bootPlugin(PluginEntity $entity)

플러그인을 부트한다.

getAllPlugins(bool $refresh = false)

등록된 플러그인의 목록을 반환한다.

void
refreshPlugins()

설치된 플러그인 목록 캐시를 갱신한다.

getActivatedPlugins()

활성화 된 플러그인의 목록을 반환한다.

getPlugin(string $pluginId)

주어진 pluginId에 해당하는 플러그인을 조회하여 반환한다. PluginEntity 형태로 반환한다.

mixed
getPluginsStatus()

플러그인들의 상태정보를 조회한다.

mixed
getPluginStatus(string $pluginId, null $field = null)

주어진 플러그인의 상태정보를 조회한다.

void
setPluginsStatus(array $configs)

플러그인 상태정보를 갱신한다.

void
setPluginStatus(string $pluginId, array $field, null $status = null)

주어진 plugin의 상태를 갱신한다.

void
registerViewNamespace(PluginEntity $entity)

플러그인의 view namespace를 지정한다.

bool
isActivated(string $pluginId)

플러그인이 활성화되었는지 조사한다.

array|null
getOperation(ComposerFileWriter $writer)

현재 진행중인 플러그인 설치 작업 내역을 반환한다.

void
addComponent(string $component)

컴포넌트를 Register에 추가한다.

Details

at line 130
__construct(string $pluginsDir, PluginCollection $plugins, PluginProvider $provider, Factory $viewFactory, PluginRegister $register, Application $app)

생성자. 플러그인 관리에 필요한 요소들을 주입받는다.

Parameters

string $pluginsDir 플러그인 디렉토리
PluginCollection $plugins 플러그인 목록
PluginProvider $provider 플러그인 프로바이더
Factory $viewFactory View
PluginRegister $register plugin register
Application $app application

at line 153
void setConfig(ConfigManager $config)

config manager를 설정한다.

Parameters

ConfigManager $config config manager

Return Value

void

at line 163
string getPluginsDir()

plugin directory 경로를 반환한다.

Return Value

string

at line 175
void setPluginsDir(string $path)

plugin directory 경로를 지정한다.

Parameters

string $path 지정할 디렉토리 경로

Return Value

void

at line 187
array getUnresolvedComponents(string|null $plugin = null)

get Unresolved Components

Parameters

string|null $plugin target plugin

Return Value

array

at line 205
void activatePlugin(string $pluginId)

주어진 플러그인을 활성화한다. 활성화된 플러그인 목록은 XE에 저장된다.

Parameters

string $pluginId 활성화 할 플러그인의 id

Return Value

void

at line 254
void deactivatePlugin(string $pluginId)

주어진 플러그인을 비활성화한다.

Parameters

string $pluginId 비활성화 할 플러그인의 id

Return Value

void

at line 306
void updatePlugin(string $pluginId, bool $updateStatus = true)

플러그인을 업데이트한다.

Parameters

string $pluginId 업데이트할 플러그인의 아이디
bool $updateStatus true일 경우, 업데이트한 플러그인의 상태를 status에 업데이트한다.

Return Value

void

at line 353
void uninstallPlugin(string $pluginId)

주어진 플러그인을 uninstall 한다.

Parameters

string $pluginId 삭제할 플러그인의 id

Return Value

void

Exceptions

Exception

at line 378
void bootPlugins()

활성화 된 플러그인을 부팅한다. 이 메소드는 모든 요청에서 항상 호출되며, 활성화 된 모든 플러그인의 boot()메소드를 호출한다.

각 플러그인은 모든 요청에서 항상 작동되어야 할 작업을 boot() 메소드로 작성해 놓아야 한다.

Return Value

void

at line 398
void registerPlugin(PluginEntity $entity)

플러그인에서 제공하는 요소들을 바인딩한다.

Parameters

PluginEntity $entity 플러그인

Return Value

void

at line 421
void bootPlugin(PluginEntity $entity)

플러그인을 부트한다.

Parameters

PluginEntity $entity 부트시킬 플러그인

Return Value

void

at line 439
PluginCollection getAllPlugins(bool $refresh = false)

등록된 플러그인의 목록을 반환한다.

Parameters

bool $refresh true일 경우, cache를 사용하지 않고 다시 목록을 생성하여 반환한다.

Return Value

PluginCollection

at line 470
void refreshPlugins()

설치된 플러그인 목록 캐시를 갱신한다.

Return Value

void

at line 480
PluginEntity[] getActivatedPlugins()

활성화 된 플러그인의 목록을 반환한다.

Return Value

PluginEntity[]

at line 492
PluginEntity getPlugin(string $pluginId)

주어진 pluginId에 해당하는 플러그인을 조회하여 반환한다. PluginEntity 형태로 반환한다.

Parameters

string $pluginId 조회할 plugin의 id

Return Value

PluginEntity

at line 502
protected mixed getPluginsStatus()

플러그인들의 상태정보를 조회한다.

Return Value

mixed

at line 516
protected mixed getPluginStatus(string $pluginId, null $field = null)

주어진 플러그인의 상태정보를 조회한다.

Parameters

string $pluginId plugin id
null $field 'version' or 'status'

Return Value

mixed

at line 534
protected void setPluginsStatus(array $configs)

플러그인 상태정보를 갱신한다.

Parameters

array $configs status list

Return Value

void

at line 549
protected void setPluginStatus(string $pluginId, array $field, null $status = null)

주어진 plugin의 상태를 갱신한다.

상태정보에는 status, version 필드가 있으며, 둘중 하나만 선택해서 갱신할 수도 있다.

Parameters

string $pluginId plugin id
array $field 'version' or 'status'
null $status value of field

Return Value

void

at line 570
private void registerViewNamespace(PluginEntity $entity)

플러그인의 view namespace를 지정한다.

Parameters

PluginEntity $entity 플러그인

Return Value

void

at line 582
bool isActivated(string $pluginId)

플러그인이 활성화되었는지 조사한다.

Parameters

string $pluginId 조사할 플러그인 아이디

Return Value

bool 활성화된 플러그인일 경우 true 반환

at line 598
array|null getOperation(ComposerFileWriter $writer)

현재 진행중인 플러그인 설치 작업 내역을 반환한다.

Parameters

ComposerFileWriter $writer composer file writer

Return Value

array|null

at line 691
void addComponent(string $component)

컴포넌트를 Register에 추가한다.

Parameters

string $component component class name

Return Value

void