Plugin ​
- Type
- Class
- Namespace
- craft\base
- Inherits
- craft\base\Plugin » yii\base\Module » yii\di\ServiceLocator » yii\base\Component » yii\base\BaseObject
- Implements
- craft\base\PluginInterface, yii\base\Configurable
- Uses traits
- craft\base\PluginTrait
- Since
- 3.0.0
Plugin is the base class for classes representing plugins in terms of objects.
Public Properties ​
Property | Description |
---|---|
aliases | array – List of path aliases to be defined. |
basePath | string – The root directory of the module. |
behaviors | yii\base\Behavior – List of behaviors attached to this component. |
changelogUrl | string, null – The plugin’s changelog URL. |
components | array – The list of the component definitions or the loaded component instances (ID => definition or instance). |
controllerMap | array – Mapping from controller ID to controller configurations. |
controllerNamespace | string, null – The namespace that controller classes are in. |
controllerPath | string – The directory that contains the controller classes. |
cpNavItem | array, null |
defaultRoute | string – The default route of this module. |
description | string, null – The plugin’s description |
developer | string, null – The plugin developer’s name |
developerEmail | string, null – The plugin developer’s support email |
developerUrl | string, null – The plugin developer’s website URL |
documentationUrl | string, null – The plugin’s documentation URL |
downloadUrl | string, null – The plugin’s download URL |
edition | string – The active edition. |
handle | string – The plugin’s handle (alias of id) |
hasCpSection | boolean – Whether the plugin has its own section in the control panel |
hasCpSettings | boolean – Whether the plugin has a settings page in the control panel |
id | string – An ID that uniquely identifies this module among other modules which have the same parent. |
isInstalled | boolean – Whether the plugin is currently installed. |
layout | string, boolean, null – The layout that should be applied for views within this module. |
layoutPath | string – The root directory of layout files. |
migrator | craft\db\MigrationManager – The plugin’s migration manager |
minCmsEdition | \craft\enums\CmsEdition – The minimum required Craft CMS edition. |
minVersionRequired | string – The minimum required version the plugin has to be so it can be updated. |
module | yii\base\Module, null – The parent module of this module. |
modules | array – The modules (indexed by their IDs). |
name | string, null – The plugin’s display name |
packageName | string, null – The plugin’s package name |
params | array – Custom module parameters (name => value). |
schemaVersion | string – The plugin’s schema version number |
settings | craft\base\Model, null – The model that the plugin’s settings should be stored on, if the plugin has settings |
settingsResponse | mixed – The result that should be returned from craft\controllers\PluginsController::actionEditPluginSettings() |
sourceLanguage | string – The language that the plugin’s messages were written in |
t9nCategory | string, null – The translation category that this plugin’s translation messages should use. |
uniqueId | string – The unique ID of the module. |
version | string – The version of this module. |
viewPath | string – The root directory of view files. |
cpNavItem
​
handle
​
- Type
- string
- Default value
null
The plugin’s handle (alias of id)
migrator
​
- Type
- craft\db\MigrationManager
- Default value
null
The plugin’s migration manager
settings
​
- Type
- craft\base\Model, null
- Default value
null
The model that the plugin’s settings should be stored on, if the plugin has settings
settingsResponse
​
- Type
mixed
- Default value
null
- Access
- Read-only
The result that should be returned from craft\controllers\PluginsController::actionEditPluginSettings()
Public Methods ​
Method | Description |
---|---|
__call() | Calls the named method which is not a class method. |
__clone() | This method is called after the object is created by cloning an existing one. |
__construct() | Constructor. |
__get() | Getter magic method. |
__isset() | Checks if a property value is null. |
__set() | Sets the value of a component property. |
__unset() | Sets a component property to be null. |
afterAction() | This method is invoked right after an action within this module is executed. |
afterSaveSettings() | Performs actions after the plugin’s settings are saved. |
attachBehavior() | Attaches a behavior to this component. |
attachBehaviors() | Attaches a list of behaviors to the component. |
beforeAction() | This method is invoked right before an action within this module is executed. |
beforeSaveSettings() | Performs actions before the plugin’s settings are saved. |
behaviors() | Returns a list of behaviors that this component should behave as. |
canGetProperty() | Returns a value indicating whether a property can be read. |
canSetProperty() | Returns a value indicating whether a property can be set. |
className() | Returns the fully qualified name of this class. |
clear() | Removes the component from the locator. |
config() | Returns the base config that the plugin should be instantiated with. |
createController() | Creates a controller instance based on the given route. |
createControllerByID() | Creates a controller based on the given controller ID. |
detachBehavior() | Detaches a behavior from the component. |
detachBehaviors() | Detaches all behaviors from the component. |
editions() | Returns supported plugin editions (lowest to highest). |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. |
get() | Returns the component instance with the specified ID. |
getBasePath() | Returns the root directory of the module. |
getBehavior() | Returns the named behavior object. |
getBehaviors() | Returns all behaviors attached to this component. |
getComponents() | Returns the list of the component definitions or the loaded component instances. |
getControllerPath() | Returns the directory that contains the controller classes according to controllerNamespace. |
getCpNavItem() | Returns the control panel nav item definition for this plugin, if it has a section in the control panel. |
getHandle() | Returns the plugin’s handle (really just an alias of yii\base\Module::$id). |
getInstance() | Returns the currently requested instance of this module class. |
getLayoutPath() | Returns the directory that contains layout view files for this module. |
getMigrator() | Returns the plugin’s migration manager |
getModule() | Retrieves the child module of the specified ID. |
getModules() | Returns the sub-modules in this module. |
getSettings() | Returns the model that the plugin’s settings should be stored on, if the plugin has settings. |
getSettingsResponse() | Returns the settings page response. |
getUniqueId() | Returns an ID that uniquely identifies this module among all modules within the current application. |
getVersion() | Returns current module version. |
getViewPath() | Returns the directory that contains the view files for this module. |
has() | Returns a value indicating whether the locator has the specified component definition or has instantiated the component. |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. |
hasMethod() | Returns a value indicating whether a method is defined. |
hasModule() | Checks whether the child module of the specified ID exists. |
hasProperty() | Returns a value indicating whether a property is defined for this component. |
init() | Initializes the module. |
install() | Installs the plugin. |
is() | Compares the active edition with the given edition. |
off() | Detaches an existing event handler from this component. |
on() | Attaches an event handler to an event. |
runAction() | Runs a controller action specified by a route. |
set() | Registers a component definition with this locator. |
setAliases() | Defines path aliases. |
setBasePath() | Sets the root directory of the module. |
setComponents() | Registers a set of component definitions in this locator. |
setControllerPath() | Sets the directory that contains the controller classes. |
setInstance() | Sets the currently requested instance of this module class. |
setLayoutPath() | Sets the directory that contains the layout files. |
setModule() | Adds a sub-module to this module. |
setModules() | Registers sub-modules in the current module. |
setSettings() | Sets the plugin settings |
setVersion() | Sets current module version. |
setViewPath() | Sets the directory that contains the view files. |
trigger() | Triggers an event. |
uninstall() | Uninstalls the plugin. |
__construct()
​
Constructor.
Arguments ​
$id
(string) – The ID of this module.$parent
(yii\base\Module, null) – The parent module (if any).$config
(array) – Name-value pairs that will be used to initialize the object properties.
afterSaveSettings()
​
- Since
- 3.0.16
Performs actions after the plugin’s settings are saved.
beforeSaveSettings()
​
- Since
- 3.0.16
Performs actions before the plugin’s settings are saved.
Returns ​
boolean – Whether the plugin’s settings should be saved.
config()
​
- Since
- 4.0.0
Returns the base config that the plugin should be instantiated with.
It is recommended that plugins define their internal components from here:
public static function config(): array
{
return [
'components' => [
'myComponent' => ['class' => MyComponent::class],
// ...
],
];
}
Doing that enables projects to customize the components as needed, by overriding \craft\services\Plugins::$pluginConfigs
in config/app.php
:
return [
'components' => [
'plugins' => [
'pluginConfigs' => [
'my-plugin' => [
'components' => [
'myComponent' => [
'myProperty' => 'foo',
// ...
],
],
],
],
],
],
];
The resulting config will be passed to \Craft::createObject()
to instantiate the plugin.
Returns ​
editions()
​
- Since
- 3.1.0
Returns supported plugin editions (lowest to highest).
Returns ​
string[]
getCpNavItem()
​
Returns the control panel nav item definition for this plugin, if it has a section in the control panel.
The returned array should contain the following keys:
label
– The human-facing nav item labelurl
– The URL the nav item should link toid
– The HTMLid
attribute the nav item should have (optional)icon
– The path to an SVG file that should be used as the nav item icon (optional)fontIcon
– A character/ligature from Craft’s font icon set (optional)badgeCount
– A number that should be displayed beside the nav item when unselectedsubnav
– A sub-array of subnav items
The subnav array should be associative, with identifiable keys set to sub-arrays with the following keys:
label
– The human-facing subnav item labelurl
– The URL the subnav item should link to
For example:
return [
'label' => 'Commerce',
'url' => 'commerce',
'subnav' => [
'orders' => ['label' => 'Orders', 'url' => 'commerce/orders',
'discounts' => ['label' => 'Discounts', 'url' => 'commerce/discounts',
],
];
Control panel templates can specify which subnav item is selected by defining a selectedSubnavItem
variable.
{% set selectedSubnavItem = 'orders' %}
Returns ​
getHandle()
​
Returns the plugin’s handle (really just an alias of yii\base\Module::$id).
Returns ​
string – The plugin’s handle
getMigrator()
​
Returns the plugin’s migration manager
Returns ​
craft\db\MigrationManager – The plugin’s migration manager
getSettings()
​
Returns the model that the plugin’s settings should be stored on, if the plugin has settings.
Returns ​
craft\base\Model, null – The model that the plugin’s settings should be stored on, if the plugin has settings
getSettingsResponse()
​
Returns the settings page response.
Returns ​
mixed
– The result that should be returned from craft\controllers\PluginsController::actionEditPluginSettings()
install()
​
Installs the plugin.
is()
​
- Since
- 3.1.0
Compares the active edition with the given edition.
Arguments ​
$edition
(string) – The edition to compare the active edition against$operator
(string) – The comparison operator to use.=
by default, meaning the method will returntrue
if the active edition is equal to the passed-in edition.
Returns ​
Throws ​
- yii\base\InvalidArgumentException
if$edition
is an unsupported edition, or if$operator
is an invalid operator.
setSettings()
​
Sets the plugin settings
Arguments ​
$settings
(array) – The plugin settings that should be set on the settings model
uninstall()
​
Uninstalls the plugin.
Protected Methods ​
Method | Description |
---|---|
afterInstall() | Performs actions after the plugin is installed. |
afterUninstall() | Performs actions after the plugin is uninstalled. |
beforeInstall() | Performs actions before the plugin is installed. |
beforeUninstall() | Performs actions before the plugin is uninstalled. |
cpNavIconPath() | Returns the path to the SVG icon that should be used in the plugin’s nav item in the control panel. |
createInstallMigration() | Instantiates and returns the plugin’s installation migration, if it has one. |
createSettingsModel() | Creates and returns the model used to store the plugin’s settings. |
defaultVersion() | Returns default module version. |
settingsHtml() | Returns the rendered settings HTML, which will be inserted into the content block on the settings page. |
afterInstall()
​
Performs actions after the plugin is installed.
afterUninstall()
​
Performs actions after the plugin is uninstalled.
beforeInstall()
​
Performs actions before the plugin is installed.
beforeUninstall()
​
Performs actions before the plugin is uninstalled.
cpNavIconPath()
​
Returns the path to the SVG icon that should be used in the plugin’s nav item in the control panel.
See also getCpNavItem()View source
Returns ​
createInstallMigration()
​
Instantiates and returns the plugin’s installation migration, if it has one.
Returns ​
craft\db\Migration, null – The plugin’s installation migration
createSettingsModel()
​
Creates and returns the model used to store the plugin’s settings.
Returns ​
settingsHtml()
​
Returns the rendered settings HTML, which will be inserted into the content block on the settings page.
Returns ​
string, null – The rendered settings HTML
Events ​
EVENT_AFTER_SAVE_SETTINGS ​
- Type
- yii\base\Event
- Since
- 3.0.16
The event that is triggered after the plugin’s settings are saved.
EVENT_BEFORE_SAVE_SETTINGS ​
- Type
- craft\events\ModelEvent
- Since
- 3.0.16
The event that is triggered before the plugin’s settings are saved.
You may set yii\base\ModelEvent::$isValid to false
to prevent the plugin’s settings from saving.