本文整理汇总了PHP中ReflectionMethod::getDeclaringClassName方法的典型用法代码示例。如果您正苦于以下问题:PHP ReflectionMethod::getDeclaringClassName方法的具体用法?PHP ReflectionMethod::getDeclaringClassName怎么用?PHP ReflectionMethod::getDeclaringClassName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ReflectionMethod
的用法示例。
在下文中一共展示了ReflectionMethod::getDeclaringClassName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getJoinpointInvocationBody
/**
* Creates definition for method body
*
* @param Method|ParsedMethod $method Method reflection
*
* @return string new method body
*/
protected function getJoinpointInvocationBody($method)
{
$isStatic = $method->isStatic();
$scope = $isStatic ? $this->staticLsbExpression : '$this';
$prefix = $isStatic ? AspectContainer::STATIC_METHOD_PREFIX : AspectContainer::METHOD_PREFIX;
$args = join(', ', array_map(function ($param) {
/** @var $param Parameter|ParsedParameter */
$byReference = $param->isPassedByReference() ? '&' : '';
return $byReference . '$' . $param->name;
}, $method->getParameters()));
$body = '';
if ($this->class->name === $method->getDeclaringClassName() && strpos($method->getSource(), 'func_get_args') !== false) {
$body = '$argsList = \\func_get_args();' . PHP_EOL;
if (empty($args)) {
$scope = "{$scope}, \$argsList";
} else {
$scope = "{$scope}, array({$args}) + \$argsList";
}
} elseif (!empty($args)) {
$scope = "{$scope}, array({$args})";
}
$body .= "return self::\$__joinPoints['{$prefix}:{$method->name}']->__invoke({$scope});";
return $body;
}