PluginService
Table of Contents
VENDOR_NAME | 'ec-cube' | |
---|---|---|
ECCUBE_LIBRARY | Plugin type/library of ec-cube | 1 |
OTHER_LIBRARY | Plugin type/library of other (except ec-cube) | 2 |
$eccubeConfig | EccubeConfig | |
$entityManager | EntityManager | |
$pluginRepository | PluginRepository | |
$entityProxyService | EntityProxyService | |
$schemaService | SchemaService | |
$composerService | ComposerServiceInterface | |
$projectRoot | string | |
$environment | string | |
$container | ContainerInterface | |
$cacheUtil | CacheUtil | |
$pluginApiService | PluginApiService | |
$systemService | SystemService | |
__construct() | PluginService constructor. | mixed |
install() | ファイル指定してのプラグインインストール | bool |
installWithCode() | mixed | |
preInstall() | mixed | |
postInstall() | mixed | |
generateProxyAndUpdateSchema() | プラグインの Proxy ファイルを生成して UpdateSchema を実行する. | mixed |
generateProxyAndCallback() | プラグインの Proxy ファイルを生成してコールバック関数を実行する. | mixed |
createTempDir() | mixed | |
deleteDirs() | mixed | |
unpackPluginArchive() | mixed | |
checkPluginArchiveContent() | mixed | |
readConfig() | array | |
checkSymbolName() | mixed | |
deleteFile() | mixed | |
checkSamePlugin() | mixed | |
calcPluginDir() | mixed | |
createPluginDir() | mixed | |
registerPlugin() | Plugin | |
callPluginManagerMethod() | mixed | |
uninstall() | bool | |
unregisterPlugin() | mixed | |
disable() | mixed | |
regenerateProxy() | Proxyを再生成します. | array |
enable() | mixed | |
update() | Update plugin | bool |
updatePlugin() | Update plugin | mixed |
getPluginRequired() | Get array require by plugin Todo: need define dependency plugin mechanism | array|mixed |
findDependentPluginNeedDisable() | Find the dependent plugins that need to be disabled | array |
findDependentPlugin() | Find the other plugin that has requires on it. | array |
getDependentByCode() | Get dependent plugin by code It's base on composer.json Return the plugin code and version in the format of the composer | array |
parseToComposerCommand() | Format array dependent plugin to string It is used for commands. | string |
copyAssets() | リソースファイル等をコピー コピー元となるファイルの置き場所は固定であり、 [プラグインコード]/Resource/assets 配下に置かれているファイルが所定の位置へコピーされる | mixed |
removeAssets() | コピーしたリソースファイル等を削除 | mixed |
checkPluginExist() | Plugin is exist check | bool|int|string |
isEnable() | bool |
Constants
VENDOR_NAME
public
mixed
$VENDOR_NAME
= 'ec-cube'
ECCUBE_LIBRARY
Plugin type/library of ec-cube
public
mixed
$ECCUBE_LIBRARY
= 1
OTHER_LIBRARY
Plugin type/library of other (except ec-cube)
public
mixed
$OTHER_LIBRARY
= 2
Properties
$eccubeConfig
protected
EccubeConfig
$eccubeConfig
$entityManager
protected
EntityManager
$entityManager
$pluginRepository
protected
PluginRepository
$pluginRepository
$entityProxyService
protected
EntityProxyService
$entityProxyService
$schemaService
protected
SchemaService
$schemaService
$composerService
protected
ComposerServiceInterface
$composerService
$projectRoot
private
string
$projectRoot
$environment
private
string
$environment
$container
protected
ContainerInterface
$container
$cacheUtil
protected
CacheUtil
$cacheUtil
$pluginApiService
private
PluginApiService
$pluginApiService
$systemService
private
SystemService
$systemService
Methods
__construct()
PluginService constructor.
public
__construct(
$entityManager :
EntityManagerInterface
, $pluginRepository :
PluginRepository
, $entityProxyService :
EntityProxyService
, $schemaService :
SchemaService
, $eccubeConfig :
EccubeConfig
, $container :
ContainerInterface
, $cacheUtil :
CacheUtil
, $composerService :
ComposerServiceInterface
, $pluginApiService :
PluginApiService
, $systemService :
SystemService
)
: mixed
Parameters
- $entityManager : EntityManagerInterface
- $pluginRepository : PluginRepository
- $entityProxyService : EntityProxyService
- $schemaService : SchemaService
- $eccubeConfig : EccubeConfig
- $container : ContainerInterface
- $cacheUtil : CacheUtil
- $composerService : ComposerServiceInterface
- $pluginApiService : PluginApiService
- $systemService : SystemService
Return values
mixedinstall()
ファイル指定してのプラグインインストール
public
install(
$path :
string
, $source :
int
)
: bool
Parameters
- $path : string
path to tar.gz/zip plugin file
- $source : int
Tags
Return values
boolinstallWithCode()
public
installWithCode(
$code :
)
: mixed
Parameters
Tags
Return values
mixedpreInstall()
public
preInstall(
)
: mixed
Return values
mixedpostInstall()
public
postInstall(
$config :
mixed
, $source :
mixed
)
: mixed
Parameters
- $config : mixed
- $source : mixed
Return values
mixedgenerateProxyAndUpdateSchema()
プラグインの Proxy ファイルを生成して UpdateSchema を実行する.
public
generateProxyAndUpdateSchema(
$plugin :
Plugin
, $config :
array
[, $uninstall :
bool
= false ]
[, $saveMode :
bool
= true ]
)
: mixed
Parameters
- $plugin : Plugin
プラグインオブジェクト
- $config : array
プラグインの composer.json の配列
- $uninstall : bool = false
アンインストールする場合は true
- $saveMode : bool = true
SQL を即時実行する場合は true
Return values
mixedgenerateProxyAndCallback()
プラグインの Proxy ファイルを生成してコールバック関数を実行する.
public
generateProxyAndCallback(
$callback :
callable
, $plugin :
Plugin
, $config :
array
[, $uninstall :
bool
= false ]
[, $tmpProxyOutputDir :
string
= null ]
)
: mixed
コールバック関数は主に SchemaTool が利用されます. Proxy ファイルを出力する一時ディレクトリを指定しない場合は内部で生成し, コールバック関数実行後に削除されます.
Parameters
- $callback : callable
Proxy ファイルを生成した後に実行されるコールバック関数
- $plugin : Plugin
プラグインオブジェクト
- $config : array
プラグインの composer.json の配列
- $uninstall : bool = false
アンインストールする場合は true
- $tmpProxyOutputDir : string = null
Proxy ファイルを出力する一時ディレクトリ
Return values
mixedcreateTempDir()
public
createTempDir(
)
: mixed
Return values
mixeddeleteDirs()
public
deleteDirs(
$arr :
mixed
)
: mixed
Parameters
- $arr : mixed
Return values
mixedunpackPluginArchive()
public
unpackPluginArchive(
$archive :
string
, $dir :
string
)
: mixed
Parameters
- $archive : string
- $dir : string
Tags
Return values
mixedcheckPluginArchiveContent()
public
checkPluginArchiveContent(
$dir :
[, $config_cache :
array
= [] ]
)
: mixed
Parameters
Tags
Return values
mixedreadConfig()
public
readConfig(
$pluginDir :
)
: array
Parameters
Tags
Return values
arraycheckSymbolName()
public
checkSymbolName(
$string :
mixed
)
: mixed
Parameters
- $string : mixed
Return values
mixeddeleteFile()
public
deleteFile(
$path :
string
)
: mixed
Parameters
- $path : string
Return values
mixedcheckSamePlugin()
public
checkSamePlugin(
$code :
mixed
)
: mixed
Parameters
- $code : mixed
Return values
mixedcalcPluginDir()
public
calcPluginDir(
$code :
mixed
)
: mixed
Parameters
- $code : mixed
Return values
mixedcreatePluginDir()
public
createPluginDir(
$d :
string
)
: mixed
Parameters
- $d : string
Tags
Return values
mixedregisterPlugin()
public
registerPlugin(
$meta :
, $source :
int
)
: Plugin
Parameters
Tags
Return values
PlugincallPluginManagerMethod()
public
callPluginManagerMethod(
$meta :
, $method :
string
)
: mixed
Parameters
Return values
mixeduninstall()
public
uninstall(
$plugin :
Plugin
[, $force :
bool
= true ]
)
: bool
Parameters
- $plugin : Plugin
- $force : bool = true
Tags
Return values
boolunregisterPlugin()
public
unregisterPlugin(
$p :
Plugin
)
: mixed
Parameters
- $p : Plugin
Return values
mixeddisable()
public
disable(
$plugin :
Plugin
)
: mixed
Parameters
- $plugin : Plugin
Return values
mixedregenerateProxy()
Proxyを再生成します.
private
regenerateProxy(
$plugin :
Plugin
, $temporary :
bool
[, $outputDir :
string|null
= null ]
[, $uninstall :
bool
= false ]
)
: array
Parameters
- $plugin : Plugin
プラグイン
- $temporary : bool
プラグインが無効状態でも一時的に生成するかどうか
- $outputDir : string|null = null
出力先
- $uninstall : bool = false
プラグイン削除の場合はtrue
Return values
array —生成されたファイルのパス
enable()
public
enable(
$plugin :
Plugin
[, $enable :
mixed
= true ]
)
: mixed
Parameters
- $plugin : Plugin
- $enable : mixed = true
Return values
mixedupdate()
Update plugin
public
update(
$plugin :
Plugin
, $path :
string
)
: bool
Parameters
- $plugin : Plugin
- $path : string
Tags
Return values
boolupdatePlugin()
Update plugin
public
updatePlugin(
$plugin :
Plugin
, $meta :
array
)
: mixed
Parameters
- $plugin : Plugin
- $meta : array
Config data
Tags
Return values
mixedgetPluginRequired()
Get array require by plugin Todo: need define dependency plugin mechanism
public
getPluginRequired(
$plugin :
array|Plugin
)
: array|mixed
Parameters
- $plugin : array|Plugin
format as plugin from api
Tags
Return values
array|mixedfindDependentPluginNeedDisable()
Find the dependent plugins that need to be disabled
public
findDependentPluginNeedDisable(
$pluginCode :
string
)
: array
Parameters
- $pluginCode : string
Return values
array —plugin code
findDependentPlugin()
Find the other plugin that has requires on it.
public
findDependentPlugin(
$pluginCode :
string
[, $enableOnly :
bool
= false ]
)
: array
Check in both dtb_plugin table and <PluginCode>/composer.json
Parameters
- $pluginCode : string
- $enableOnly : bool = false
Return values
array —plugin code
getDependentByCode()
Get dependent plugin by code It's base on composer.json Return the plugin code and version in the format of the composer
public
getDependentByCode(
$pluginCode :
string
[, $libraryType :
int|null
= null ]
)
: array
Parameters
- $pluginCode : string
- $libraryType : int|null = null
self::ECCUBE_LIBRARY only return library/plugin of eccube self::OTHER_LIBRARY only return library/plugin of 3rd part ex: symfony, composer, ... default : return all library/plugin
Return values
array —format [packageName1 => version1, packageName2 => version2]
parseToComposerCommand()
Format array dependent plugin to string It is used for commands.
public
parseToComposerCommand(
$packages :
array
[, $getVersion :
bool
= true ]
)
: string
Parameters
- $packages : array
format [packageName1 => version1, packageName2 => version2]
- $getVersion : bool = true
Return values
string —format if version=true: "packageName1:version1 packageName2:version2", if version=false: "packageName1 packageName2"
copyAssets()
リソースファイル等をコピー コピー元となるファイルの置き場所は固定であり、 [プラグインコード]/Resource/assets 配下に置かれているファイルが所定の位置へコピーされる
public
copyAssets(
$pluginCode :
)
: mixed
Parameters
Return values
mixedremoveAssets()
コピーしたリソースファイル等を削除
public
removeAssets(
$pluginCode :
string
)
: mixed
Parameters
- $pluginCode : string
Return values
mixedcheckPluginExist()
Plugin is exist check
public
checkPluginExist(
$plugins :
array
, $pluginCode :
string
)
: bool|int|string
Parameters
- $plugins : array
get from api
- $pluginCode : string
Return values
bool|int|stringisEnable()
private
isEnable(
$code :
string
)
: bool
Parameters
- $code : string