本文整理汇总了PHP中lang\XPClass::getSimpleName方法的典型用法代码示例。如果您正苦于以下问题:PHP XPClass::getSimpleName方法的具体用法?PHP XPClass::getSimpleName怎么用?PHP XPClass::getSimpleName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lang\XPClass
的用法示例。
在下文中一共展示了XPClass::getSimpleName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: commandUsage
/**
* Shows usage
*
* @param lang.XPClass $class
* @return void
*/
protected function commandUsage(XPClass $class)
{
$comment = $class->getComment();
if ('' === (string) $comment) {
$markdown = '# ' . $class->getSimpleName() . "\n\n";
$text = '';
} else {
@(list($headline, $text) = explode("\n", $comment, 2));
$markdown = '# ' . ltrim($headline, ' #') . "\n\n";
}
$markdown .= "- Usage\n ```sh\n\$ xp cmd " . Commands::nameOf($class);
$extra = $details = $positional = [];
foreach ($class->getMethods() as $method) {
if (!$method->hasAnnotation('arg')) {
continue;
}
$arg = $method->getAnnotation('arg');
$name = strtolower(preg_replace('/^set/', '', $method->getName()));
$optional = 0 === $method->numParameters() || $method->getParameters()[0]->isOptional();
$comment = $method->getComment();
if (isset($arg['position'])) {
$details[$name] = [$comment, null];
$positional[$arg['position']] = $name;
} else {
if (isset($arg['name'])) {
$details['--' . $arg['name']] = [$comment, isset($arg['short']) ? $arg['short'] : $arg['name'][0]];
$extra[$arg['name']] = $optional;
} else {
$details['--' . $name] = [$comment, isset($arg['short']) ? $arg['short'] : $name[0]];
$extra[$name] = $optional;
}
}
}
// Usage
asort($positional);
foreach ($positional as $name) {
$markdown .= ' ' . $name;
}
foreach ($extra as $name => $optional) {
$markdown .= ' ' . (($optional ? '[' : '') . '--' . $name . ($optional ? '] ' : ' '));
}
$markdown .= "\n ```\n";
// Argument details
foreach ($details as $which => $detail) {
$markdown .= sprintf(" **%s**: %s%s\n\n", $which, str_replace("\n", "\n ", $detail[0]), $detail[1] ? ' *(also: -' . $detail[1] . ')*' : '');
}
Help::render(self::$err, substr($markdown, 0, -1) . $text, $class->getClassLoader());
}