43 $this->subjectType = get_parent_class($this);
44 if (method_exists($this->subjectType,
'___init')) {
68 if (method_exists(get_parent_class($this),
'__sleep')) {
84 if (method_exists(get_parent_class($this),
'__wakeup')) {
101 $type = $this->subjectType;
102 $pluginList = $this->pluginList;
104 $next =
function (...$arguments) use (
113 $currentPluginInfo = $pluginInfo;
119 $pluginInstance = $pluginList->getPlugin(
$type,
$code);
120 $pluginMethod =
'before' . $capMethod;
121 $beforeResult = $pluginInstance->$pluginMethod($this, ...array_values(
$arguments));
123 if ($beforeResult !==
null) {
133 $pluginInstance = $pluginList->getPlugin(
$type,
$code);
134 $pluginMethod =
'around' . $capMethod;
135 $result = $pluginInstance->$pluginMethod($subject, $next, ...array_values(
$arguments));
144 $pluginInstance = $pluginList->getPlugin(
$type,
$code);
145 $pluginMethod =
'after' . $capMethod;
___callPlugins($method, array $arguments, array $pluginInfo)
___callParent($method, array $arguments)