YeeModule Functions
There are 2 methods to install a new module, either by manually upload it or thru marketplace. For method 1, backend provides an interface to upload the module. Method 2 is not implemented yet.
Uploaded module will be automatically extracted and place into protected/modules folder. Then, Super Admin will needs to initialize it from the backend under 'New Modules' tab. Initialization will create protected/modules/xyz/config/main.php and protected/modules/xyz/config/console.php from the distribute version, then auto call install function in the module to setup database such as table, setting, meta structure and etc.
If a module already exists (it is just a version upgrade), Super Admin will needs to upgrade it from the backend. The system will then loop thru all the possible upgrade scripts of this module base on semantic versioning and call the correct one.
All installed/upgraded module has a carbon copy in the database under  module table. This table keeps track of the installed version of the module, and is it enable/disabled.
Yii will automatically include all modules found in the folder protected/modules as long as module config files are found. Developer will need to explicitly check if the module enabled/disabled and not having a version mismatch issue by calling the database.
getCoreModules
getCoreModules()
This return the list of core module keys in flat array form: 'yee', 'gii', 'egg', 'sys', 'i18n', 'language', 'inspinia'
getNewModules
getNewModules()
find all modules that are new and do not have config files initialized so is uncovered by getAllModules()
getAllModules
getAllModules()
getActiveModuleKeys
getActiveModuleKeys($forceRefresh = false)
getActiveParsableModules
getActiveParsableModules()
getParsableModules
getParsableModules()
hasParsableModules
hasParsableModules($moduleKey)
getModuleAbout
getModuleAbout($moduleKey)
This will parse the about.yaml file in module's config folder and return as an array. 
getModuleDb
getModuleDb($moduleKey)
This will return the module corresponding record in the database as a Module model object.
canModuleBeInstall
canModuleBeInstall($moduleKey)
canModuleBeConfigure
canModuleBeConfigure($moduleKey)
countModuleCanUpgrade
countModuleCanUpgrade()
canModuleUpgrade
canModuleUpgrade($moduleKey)
updateModule
updateModule($moduleKey)
composeNavItems
composeNavItems($navId, $controller, $original)
hasActiveModule
hasActiveModule($moduleKey)
getControllers
getControllers($moduleKey, $withPostfixController = true)
Last updated
Was this helpful?