diff --git a/resources/config/php-domain.php b/resources/config/php-domain.php index 99f41e9..fbb2f8e 100644 --- a/resources/config/php-domain.php +++ b/resources/config/php-domain.php @@ -7,6 +7,7 @@ use phpDocumentor\Guides\RestructuredText\Parser\Productions\DirectiveContentRule; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; +use T3Docs\GuidesPhpDomain\Compiler\NodeTransformers\MemberNodeTransformer; use T3Docs\GuidesPhpDomain\Directives\Php\CaseDirective; use T3Docs\GuidesPhpDomain\Directives\Php\ClassDirective; use T3Docs\GuidesPhpDomain\Directives\Php\ConstDirective; @@ -19,6 +20,7 @@ use T3Docs\GuidesPhpDomain\TextRoles\ClassTextRole; use T3Docs\GuidesPhpDomain\TextRoles\EnumTextRole; use T3Docs\GuidesPhpDomain\TextRoles\ExceptionTextRole; +use T3Docs\GuidesPhpDomain\TextRoles\MethodTextRole; use T3Docs\GuidesPhpDomain\TextRoles\TraitTextRole; use function Symfony\Component\DependencyInjection\Loader\Configurator\service; @@ -57,6 +59,9 @@ ->set(ModifierService::class) ->set(NamespaceRepository::class) + ->set(MemberNodeTransformer::class) + ->tag('phpdoc.guides.compiler.nodeTransformers') + ->set(ClassTextRole::class) ->tag('phpdoc.guides.parser.rst.text_role', ['domain' => 'php']) ->set(EnumTextRole::class) @@ -65,6 +70,8 @@ ->tag('phpdoc.guides.parser.rst.text_role', ['domain' => 'php']) ->set(InterfaceTextRole::class) ->tag('phpdoc.guides.parser.rst.text_role', ['domain' => 'php']) + ->set(MethodTextRole::class) + ->tag('phpdoc.guides.parser.rst.text_role', ['domain' => 'php']) ->set(TraitTextRole::class) ->tag('phpdoc.guides.parser.rst.text_role', ['domain' => 'php']) ; diff --git a/src/Compiler/NodeTransformers/MemberNodeTransformer.php b/src/Compiler/NodeTransformers/MemberNodeTransformer.php new file mode 100644 index 0000000..e2d13af --- /dev/null +++ b/src/Compiler/NodeTransformers/MemberNodeTransformer.php @@ -0,0 +1,74 @@ + + * + * The "class" directive sets the "classes" attribute value on its content or on the first immediately following + * non-comment element. https://docutils.sourceforge.io/docs/ref/rst/directives.html#class + */ +class MemberNodeTransformer implements NodeTransformer +{ + private ?PhpComponentNode $currentComponent = null; + + public function __construct( + private readonly LoggerInterface $logger, + private readonly AnchorReducer $anchorReducer, + ) {} + + public function enterNode(Node $node, CompilerContext $compilerContext): Node + { + if ($node instanceof PhpComponentNode) { + if ($this->currentComponent instanceof \T3Docs\GuidesPhpDomain\Nodes\PhpComponentNode) { + $this->logger->warning( + sprintf('Nested PHP domain components (php:class, php:interface, php:enum etc) are not supported. + Found php:%s inside %s', $node->toString(), $this->currentComponent->toString()), + $compilerContext->getLoggerInformation() + ); + } + $this->currentComponent = $node; + return $node; + } + + if ($node instanceof PhpMemberNode && $this->currentComponent instanceof PhpComponentNode) { + $newId = $this->anchorReducer->reduceAnchor($this->currentComponent->getId() . '::' . $node->getName()); + return $node->withId($newId); + } + + return $node; + } + + public function leaveNode(Node $node, CompilerContext $compilerContext): Node|null + { + if ($node instanceof PhpComponentNode) { + $this->currentComponent = null; + } + return $node; + } + + public function supports(Node $node): bool + { + return $node instanceof PhpMemberNode || $node instanceof PhpComponentNode; + } + + public function getPriority(): int + { + return 40_000; + } +} diff --git a/src/Nodes/PhpMemberNode.php b/src/Nodes/PhpMemberNode.php index 77495ce..5a82b98 100644 --- a/src/Nodes/PhpMemberNode.php +++ b/src/Nodes/PhpMemberNode.php @@ -5,6 +5,7 @@ namespace T3Docs\GuidesPhpDomain\Nodes; use phpDocumentor\Guides\Nodes\CompoundNode; +use phpDocumentor\Guides\Nodes\LinkTargetNode; use phpDocumentor\Guides\Nodes\Node; /** @@ -12,10 +13,10 @@ * * @extends CompoundNode */ -abstract class PhpMemberNode extends CompoundNode +abstract class PhpMemberNode extends CompoundNode implements LinkTargetNode { public function __construct( - private readonly string $id, + private string $id, private readonly string $type, private readonly string $name, array $value = [], @@ -23,11 +24,27 @@ public function __construct( parent::__construct($value); } + public function withId(string $id): PhpMemberNode + { + $clone = clone($this); + $clone->id = $id; + return $clone; + } + public function getName(): string { return $this->name; } + public function getLinkType(): string + { + return 'php:' . $this->type; + } + public function getLinkText(): string + { + return $this->name; + } + public function getType(): string { return $this->type; diff --git a/src/TextRoles/MethodTextRole.php b/src/TextRoles/MethodTextRole.php new file mode 100644 index 0000000..a180786 --- /dev/null +++ b/src/TextRoles/MethodTextRole.php @@ -0,0 +1,59 @@ +createNodeWithInterlink($documentParserContext, $matches[2], $matches[1], $referenceName); + } + return $this->createNodeWithInterlink($documentParserContext, $referenceTarget, '', $referenceName); + } + + private function createNodeWithInterlink(DocumentParserContext $documentParserContext, string $referenceTarget, string $interlinkDomain, string|null $referenceName): ReferenceNode + { + if (!preg_match(self::METHOD_NAME_REGEX, $referenceTarget, $matches)) { + $this->logger->warning($referenceTarget . ' is not a valid method name. Use the form "\Vendor\Path\Class::method" or "\Vendor\Path\Class::method(int $param)"', $documentParserContext->getLoggerInformation()); + $id = $this->anchorReducer->reduceAnchor($referenceTarget); + return new ReferenceNode($id, $referenceName ?? $referenceTarget, $interlinkDomain, 'php:' . $this->getName()); + } + + $class = $matches[1]; + $method = $matches[2]; + + $id = $this->anchorReducer->reduceAnchor($class . '::' . $method); + + return new ReferenceNode($id, $referenceName ?? $referenceTarget, $interlinkDomain, 'php:' . $this->getName()); + } + + public function getName(): string + { + return self::TYPE; + } +} diff --git a/src/TextRoles/PhpComponentTextRole.php b/src/TextRoles/PhpComponentTextRole.php index 07d6918..7f48b6a 100644 --- a/src/TextRoles/PhpComponentTextRole.php +++ b/src/TextRoles/PhpComponentTextRole.php @@ -18,7 +18,7 @@ abstract class PhpComponentTextRole implements TextRole /** * @see https://regex101.com/r/OyN05v/1 */ - private const INTERLINK_NAME_REGEX = '/^([a-zA-Z0-9]+):(.*$)/'; + protected const INTERLINK_NAME_REGEX = '/^([a-zA-Z0-9]+):(.*$)/'; private readonly InlineLexer $lexer; @@ -94,11 +94,11 @@ public function processNode( $value = null; } - return $this->createNode($referenceTarget, $value, $role); + return $this->createNode($documentParserContext, $referenceTarget, $value, $role); } /** @return ReferenceNode */ - protected function createNode(string $referenceTarget, string|null $referenceName, string $role): AbstractLinkInlineNode + protected function createNode(DocumentParserContext $documentParserContext, string $referenceTarget, string|null $referenceName, string $role): AbstractLinkInlineNode { if (preg_match(self::INTERLINK_NAME_REGEX, $referenceTarget, $matches)) { $interlinkDomain = $matches[1]; diff --git a/tests/integration/class-abstract/expected/index.html b/tests/integration/class-abstract/expected/index.html index c96c0da..102ba52 100644 --- a/tests/integration/class-abstract/expected/index.html +++ b/tests/integration/class-abstract/expected/index.html @@ -9,8 +9,7 @@

abstract class

class \TYPO3\CMS\Core\ AbstractTest - - +

Lorem Ipsum Dolor!

diff --git a/tests/integration/class-final-abstract/expected/index.html b/tests/integration/class-final-abstract/expected/index.html index 4a56b2a..de9334b 100644 --- a/tests/integration/class-final-abstract/expected/index.html +++ b/tests/integration/class-final-abstract/expected/index.html @@ -10,8 +10,7 @@

abstract final class causes warning

class \TYPO3\CMS\Core\ Test - - +

Lorem Ipsum Dolor!

diff --git a/tests/integration/class-final/expected/index.html b/tests/integration/class-final/expected/index.html index 85eb963..b9ffe07 100644 --- a/tests/integration/class-final/expected/index.html +++ b/tests/integration/class-final/expected/index.html @@ -9,8 +9,7 @@

final class

class \TYPO3\CMS\Core\ Test - - +

Lorem Ipsum Dolor!

diff --git a/tests/integration/class-namespace-directive/expected/index.html b/tests/integration/class-namespace-directive/expected/index.html index 1c76d28..904ebfd 100644 --- a/tests/integration/class-namespace-directive/expected/index.html +++ b/tests/integration/class-namespace-directive/expected/index.html @@ -8,8 +8,7 @@

PHP Class with current namespace from directive

class \TYPO3\CMS\Core\ TestClass - - +

Lorem Ipsum Dolor!

@@ -21,8 +20,7 @@

PHP Class with current namespace from directive

class \TYPO3\CMS\Core\ AnotherClass - - +

Lorem Ipsum Dolor Another!

@@ -34,8 +32,7 @@

PHP Class with current namespace from directive

class \MyVendor\Some\Namespace\ AnotherClass - - +

Lorem Ipsum Dolor Yet Another!

diff --git a/tests/integration/class-with-const-illegal-modifier-combinations/expected/index.html b/tests/integration/class-with-const-illegal-modifier-combinations/expected/index.html index b2a4c35..d3496dd 100644 --- a/tests/integration/class-with-const-illegal-modifier-combinations/expected/index.html +++ b/tests/integration/class-with-const-illegal-modifier-combinations/expected/index.html @@ -8,11 +8,10 @@

PHP class with constants

class \ChuckleFactory\ FunClass - - +

Where Fun Knows No Bounds!

-
+
public private const @@ -23,7 +22,7 @@

PHP class with constants

a pick-me-up, just access JOY_CONSTANT and let the chuckles begin.

-
+
public protected const @@ -34,7 +33,7 @@

PHP class with constants

It's known to spontaneously increase during code reviews and coffee breaks.

-
+
protected private const diff --git a/tests/integration/class-with-const/expected/index.html b/tests/integration/class-with-const/expected/index.html index 883f70c..876006d 100644 --- a/tests/integration/class-with-const/expected/index.html +++ b/tests/integration/class-with-const/expected/index.html @@ -8,11 +8,10 @@

PHP class with constants

class \SecretSociety\ EnigmaticClass - -
+

Unveiling the mysteries of constants!

-
+
public const PI @@ -22,7 +21,7 @@

PHP class with constants

to its diameter. Also used as the secret handshake among mathematicians.

-
+
protected const SECRET_NUMBER @@ -33,7 +32,7 @@

PHP class with constants

treasure chest.

-
+
private const ETERNAL_FLAME diff --git a/tests/integration/class-with-link/expected/index.html b/tests/integration/class-with-link/expected/index.html index 20d2e24..461b501 100644 --- a/tests/integration/class-with-link/expected/index.html +++ b/tests/integration/class-with-link/expected/index.html @@ -8,21 +8,20 @@

PHP Class with explicit namespace

class \TYPO3\CMS\Core\ Test - -
+

Lorem Ipsum Dolor!

-
+
setDate ( int $year, int $month, int $day)

Set the date.

-
+
-
+
getDate ( ) @@ -30,7 +29,7 @@

PHP Class with explicit namespace

Get the date.

-
+
diff --git a/tests/integration/class-with-method-link-warning/expected/index.html b/tests/integration/class-with-method-link-warning/expected/index.html new file mode 100644 index 0000000..55ce482 --- /dev/null +++ b/tests/integration/class-with-method-link-warning/expected/index.html @@ -0,0 +1,63 @@ + +
+

PHP Class with explicit namespace

+ +
+
+ class + \TYPO3\CMS\Core\ +Test +
+
+

Lorem Ipsum Dolor!

+
+setDate +( +int $year, int $month, int $day) +
+
+

Set the date.

+
+
+
+
+getDate +( +) +: int +
+
+

Get the date.

+
+
+
+
+ class + IllegalSubClass +
+
+
+
+getDate +( +) +: int +
+
+ +
+
+ +
+
+ +
+
+ +

\TYPO3\CMS\Core\Test:: or +\TYPO3\CMS\Core\Test->getDate.

+
+ + diff --git a/tests/integration/class-with-method-link-warning/expected/logs/warning.log b/tests/integration/class-with-method-link-warning/expected/logs/warning.log new file mode 100644 index 0000000..db79f4e --- /dev/null +++ b/tests/integration/class-with-method-link-warning/expected/logs/warning.log @@ -0,0 +1,4 @@ +app.WARNING: \TYPO3\CMS\Core\Test:: is not a valid method name. Use the form "\Vendor\Path\Class::method" or "\Vendor\Path\Class::method(int $param)" {"rst-file":"index.rst"} [] +app.WARNING: \TYPO3\CMS\Core\Test->getDate is not a valid method name. Use the form "\Vendor\Path\Class::method" or "\Vendor\Path\Class::method(int $param)" {"rst-file":"index.rst"} [] +app.WARNING: Nested PHP domain components (php:class, php:interface, php:enum etc) are not supported. +app.WARNING: Reference typo3-cms-core-test could not be resolved in index {"rst-file":"index"} [] diff --git a/tests/integration/class-with-method-link-warning/input/index.rst b/tests/integration/class-with-method-link-warning/input/index.rst new file mode 100644 index 0000000..6436725 --- /dev/null +++ b/tests/integration/class-with-method-link-warning/input/index.rst @@ -0,0 +1,23 @@ +================================= +PHP Class with explicit namespace +================================= + +.. php:class:: TYPO3\CMS\Core\Test + + Lorem Ipsum Dolor! + + .. php:method:: setDate(int $year, int $month, int $day) + + Set the date. + + .. php:method:: getDate(): int + + Get the date. + + + .. php:class:: IllegalSubClass + + .. php:method:: getDate(): int + +:php:method:`\TYPO3\CMS\Core\Test::` or +:php:method:`\TYPO3\CMS\Core\Test->getDate`. diff --git a/tests/integration/class-with-method-link/expected/index.html b/tests/integration/class-with-method-link/expected/index.html new file mode 100644 index 0000000..65397bc --- /dev/null +++ b/tests/integration/class-with-method-link/expected/index.html @@ -0,0 +1,42 @@ + +
+

PHP Class with explicit namespace

+ +
+
+ class + \TYPO3\CMS\Core\ +Test +
+
+

Lorem Ipsum Dolor!

+
+setDate +( +int $year, int $month, int $day) +
+
+

Set the date.

+
+
+
+
+getDate +( +) +: int +
+
+

Get the date.

+
+
+ +
+
+ +

\TYPO3\CMS\Core\Test::setDate(int $year, int $month, int $day) or +\TYPO3\CMS\Core\Test::getDate.

+
+ + diff --git a/tests/integration/class-with-method-link/input/index.rst b/tests/integration/class-with-method-link/input/index.rst new file mode 100644 index 0000000..b3cd66f --- /dev/null +++ b/tests/integration/class-with-method-link/input/index.rst @@ -0,0 +1,18 @@ +================================= +PHP Class with explicit namespace +================================= + +.. php:class:: TYPO3\CMS\Core\Test + + Lorem Ipsum Dolor! + + .. php:method:: setDate(int $year, int $month, int $day) + + Set the date. + + .. php:method:: getDate(): int + + Get the date. + +:php:method:`\TYPO3\CMS\Core\Test::setDate(int $year, int $month, int $day)` or +:php:method:`\TYPO3\CMS\Core\Test::getDate`. diff --git a/tests/integration/class-with-method/expected/index.html b/tests/integration/class-with-method/expected/index.html index 37a2832..d90f7f5 100644 --- a/tests/integration/class-with-method/expected/index.html +++ b/tests/integration/class-with-method/expected/index.html @@ -8,33 +8,28 @@

PHP Class with explicit namespace

class \TYPO3\CMS\Core\ Test - - +

Lorem Ipsum Dolor!

-
- +
setDate ( int $year, int $month, int $day) - -
+

Set the date.

-
+
-
- +
getDate ( ) : int - -
+

Get the date.

-
+
diff --git a/tests/integration/class-with-property-warnings/expected/index.html b/tests/integration/class-with-property-warnings/expected/index.html index df71828..83417e6 100644 --- a/tests/integration/class-with-property-warnings/expected/index.html +++ b/tests/integration/class-with-property-warnings/expected/index.html @@ -7,11 +7,10 @@

PHP class with properties that cause warnings

id="grumpygoblin"> class GrumpyGoblin - - +

Welcome to the gloomy world of GrumpyGoblins, spreading grumbles and dissatisfaction!

-
+
public private string $hiddenSecret @@ -20,7 +19,7 @@

PHP class with properties that cause warnings

The grumpy goblin's hidden secret. Publicly private - an illegal combination!

-
+
static readonly bool $ancientCurse @@ -29,7 +28,7 @@

PHP class with properties that cause warnings

The ancient curse haunting all GrumpyGoblins. A static readonly curse - an illegal combination!

-
+
public string $complaintBox diff --git a/tests/integration/class-with-property/expected/index.html b/tests/integration/class-with-property/expected/index.html index 1726b88..3988ea0 100644 --- a/tests/integration/class-with-property/expected/index.html +++ b/tests/integration/class-with-property/expected/index.html @@ -7,11 +7,10 @@

PHP class with properties

id="jollyelf"> class JollyElf - -
+

Welcome to the magical workshop of JollyElves, spreading cheer and joy!

-
+
public string $festiveHatColor @@ -19,7 +18,7 @@

PHP class with properties

The color of the elf's festive hat, radiating holiday spirit.

-
+
protected int $giftCount @@ -27,7 +26,7 @@

PHP class with properties

The count of gifts wrapped by the JollyElf, a closely guarded secret.

-
+
private bool $sleighBellJingle @@ -35,7 +34,7 @@

PHP class with properties

Whether the sleigh bells on the elf's shoes are jingling merrily.

-
+
static int $totalGiftsWrapped @@ -43,7 +42,7 @@

PHP class with properties

The total count of gifts wrapped by all JollyElves in the workshop.

-
+
private readonly int $entryYear diff --git a/tests/integration/class-with-staticmethod/expected/index.html b/tests/integration/class-with-staticmethod/expected/index.html index 6b41d15..d386f47 100644 --- a/tests/integration/class-with-staticmethod/expected/index.html +++ b/tests/integration/class-with-staticmethod/expected/index.html @@ -8,11 +8,10 @@

PHP Class with static method

class \TYPO3\CMS\Core\ Test - -
+

Lorem Ipsum Dolor!

-
static +
static doSomething ( @@ -21,7 +20,7 @@

PHP Class with static method

Do something

-
+
diff --git a/tests/integration/class-with-typed-const/expected/index.html b/tests/integration/class-with-typed-const/expected/index.html index 2239d35..08ded41 100644 --- a/tests/integration/class-with-typed-const/expected/index.html +++ b/tests/integration/class-with-typed-const/expected/index.html @@ -8,11 +8,10 @@

PHP class with constants

class \SecretSociety\ EnigmaticClass - - +

Unveiling the mysteries of constants!

-
+
public double const PI @@ -22,7 +21,7 @@

PHP class with constants

to its diameter. Also used as the secret handshake among mathematicians.

-
+
protected int const SECRET_NUMBER @@ -33,7 +32,7 @@

PHP class with constants

treasure chest.

-
+
private string const ETERNAL_FLAME diff --git a/tests/integration/class-without-namespace/expected/index.html b/tests/integration/class-without-namespace/expected/index.html index 700cd25..6f85e81 100644 --- a/tests/integration/class-without-namespace/expected/index.html +++ b/tests/integration/class-without-namespace/expected/index.html @@ -7,8 +7,7 @@

PHP Class

id="testclass"> class TestClass - -
+

Lorem Ipsum Dolor!

diff --git a/tests/integration/enum-backed-with-cases/expected/index.html b/tests/integration/enum-backed-with-cases/expected/index.html index 69b7d6c..6a3180f 100644 --- a/tests/integration/enum-backed-with-cases/expected/index.html +++ b/tests/integration/enum-backed-with-cases/expected/index.html @@ -11,14 +11,14 @@

PHP Enum, backed, with cases

In playing cards, a suit is one of the categories into which the cards of a deck are divided.

-
+
case Hearts : 'H'

Hearts is one of the four suits in playing cards.

-
+
case Diamonds : 'D'
diff --git a/tests/integration/enum-namespace-directive/expected/index.html b/tests/integration/enum-namespace-directive/expected/index.html index 15a3381..b4d4d90 100644 --- a/tests/integration/enum-namespace-directive/expected/index.html +++ b/tests/integration/enum-namespace-directive/expected/index.html @@ -1,29 +1,31 @@ -
+

PHP Enum with current namespace from directive

-
-
- enum +
+
+ enum \MyVendor\MyExtension\ - SomeEnum -
-
-

some stuff

-
-
+SomeEnum +
+
+

some stuff

+
+
-
-
- enum +
+
+ enum \MyVendor\MyExtension\ - AnotherEnum -
-
-

another stuff

-
-
-
+AnotherEnum + +
+

another stuff

+
+
+ + + diff --git a/tests/integration/enum-with-cases/expected/index.html b/tests/integration/enum-with-cases/expected/index.html index 54fbf8c..1fa60de 100644 --- a/tests/integration/enum-with-cases/expected/index.html +++ b/tests/integration/enum-with-cases/expected/index.html @@ -7,33 +7,32 @@

PHP Enum with Const

id="suit"> enum Suit - - +

In playing cards, a suit is one of the categories into which the cards of a deck are divided.

-
+
case Hearts :

Hearts is one of the four suits in playing cards.

-
+
case Diamonds :

Diamonds is one of the four suits in playing cards.

-
+
case Clubs :

Clubs is one of the four suits in playing cards.

-
+
case Spades :
diff --git a/tests/integration/enum-with-constant/expected/index.html b/tests/integration/enum-with-constant/expected/index.html index d833882..a02658d 100644 --- a/tests/integration/enum-with-constant/expected/index.html +++ b/tests/integration/enum-with-constant/expected/index.html @@ -8,11 +8,10 @@

PHP Enum with Const

enum \MyVendor\MyExtension\ SomeEnum - - +

some stuff

-
+
const PI diff --git a/tests/integration/enum-with-link/expected/index.html b/tests/integration/enum-with-link/expected/index.html index 539f555..5459591 100644 --- a/tests/integration/enum-with-link/expected/index.html +++ b/tests/integration/enum-with-link/expected/index.html @@ -8,8 +8,7 @@

PHP Enum with current namespace from directive

enum \MyVendor\MyExtension\ SomeEnum - -
+

some stuff

@@ -21,8 +20,7 @@

PHP Enum with current namespace from directive

enum \MyVendor\MyExtension\ AnotherEnum - - +

another stuff

diff --git a/tests/integration/enum-with-namespace/expected/index.html b/tests/integration/enum-with-namespace/expected/index.html index 3859cb2..eb0b092 100644 --- a/tests/integration/enum-with-namespace/expected/index.html +++ b/tests/integration/enum-with-namespace/expected/index.html @@ -1,29 +1,31 @@ -
+

PHP Enum without namespace from directive

-
-
- enum +
+
+ enum \MyVendor\MyExtension\ - SomeEnum -
-
-

some stuff

-
-
+SomeEnum +
+
+

some stuff

+
+
-
-
- enum +
+
+ enum \MyVendor\MyExtension\ - AnotherEnum -
-
-

another stuff

-
-
-
+AnotherEnum + +
+

another stuff

+
+
+ + + diff --git a/tests/integration/enum-with-warnings/expected/index.html b/tests/integration/enum-with-warnings/expected/index.html index 3dd0ee0..8967186 100644 --- a/tests/integration/enum-with-warnings/expected/index.html +++ b/tests/integration/enum-with-warnings/expected/index.html @@ -11,14 +11,14 @@

PHP Enum with Warnings

In playing cards, a suit is one of the categories into which the cards of a deck are divided.

-
+
case Hearts : 'H'

Hearts is one of the four suits in playing cards.

-
+
case Diamonds : 'D'
@@ -36,14 +36,14 @@

PHP Enum with Warnings

: string
-
+
case Clubs : 'C' :

Clubs is one of the four suits in playing cards.

-
+
case Spades : 'S' :
diff --git a/tests/integration/enum-without-namespace/expected/index.html b/tests/integration/enum-without-namespace/expected/index.html index a83a6ee..3ffcaeb 100644 --- a/tests/integration/enum-without-namespace/expected/index.html +++ b/tests/integration/enum-without-namespace/expected/index.html @@ -1,27 +1,29 @@ -
+

PHP Enum without namespace from directive

-
-
- enum - SomeEnum -
-
-

some stuff

-
-
+
+
+ enum + SomeEnum +
+
+

some stuff

+
+
+ +
+
+ enum + AnotherEnum +
+
+

another stuff

+
+
+ +
-
-
- enum - AnotherEnum -
-
-

another stuff

-
-
-
diff --git a/tests/integration/exception-directive/expected/index.html b/tests/integration/exception-directive/expected/index.html index d96a3bf..2939938 100644 --- a/tests/integration/exception-directive/expected/index.html +++ b/tests/integration/exception-directive/expected/index.html @@ -8,8 +8,7 @@

PHP Exception

exception \TYPO3\CMS\Core\Exception\Page\ BrokenRootLineException - - +

Exception for root line traversal when a page within the root line traversal is missing / can not be resolved.

diff --git a/tests/integration/exception-with-link-deprecated/expected/index.html b/tests/integration/exception-with-link-deprecated/expected/index.html index 43e1b35..fdcd2bb 100644 --- a/tests/integration/exception-with-link-deprecated/expected/index.html +++ b/tests/integration/exception-with-link-deprecated/expected/index.html @@ -8,8 +8,7 @@

PHP Exception

exception \TYPO3\CMS\Core\Exception\Page\ BrokenRootLineException - - +

Exception for root line traversal when a page within the root line traversal is missing / can not be resolved.

diff --git a/tests/integration/interface-implicit-namespace/expected/index.html b/tests/integration/interface-implicit-namespace/expected/index.html index c1b59d6..013e5d0 100644 --- a/tests/integration/interface-implicit-namespace/expected/index.html +++ b/tests/integration/interface-implicit-namespace/expected/index.html @@ -8,8 +8,7 @@

PHP Interface with implicit namespace

interface \TYPO3\CMS\Core\ TestInterface - - +

Lorem Ipsum Dolor!

@@ -17,4 +16,4 @@

PHP Interface with implicit namespace

- \ No newline at end of file + diff --git a/tests/integration/interface-link/expected/index.html b/tests/integration/interface-link/expected/index.html index 35c78d7..dc46567 100644 --- a/tests/integration/interface-link/expected/index.html +++ b/tests/integration/interface-link/expected/index.html @@ -8,8 +8,7 @@

PHP Interface with implicit namespace

interface \TYPO3\CMS\Core\ TestInterface - - +

Lorem Ipsum Dolor!

diff --git a/tests/integration/interface-namespace-directive/expected/index.html b/tests/integration/interface-namespace-directive/expected/index.html index ec1f0e2..fd3c685 100644 --- a/tests/integration/interface-namespace-directive/expected/index.html +++ b/tests/integration/interface-namespace-directive/expected/index.html @@ -8,8 +8,7 @@

PHP Interface with current namespace from directive

interface \TYPO3\CMS\Core\ TestInterface - - +

Lorem Ipsum Dolor!

@@ -21,8 +20,7 @@

PHP Interface with current namespace from directive

interface \TYPO3\CMS\Core\ AnotherInterface - - +

Lorem Ipsum Dolor Another!

@@ -30,4 +28,4 @@

PHP Interface with current namespace from directive

- \ No newline at end of file + diff --git a/tests/integration/interface-with-const/expected/index.html b/tests/integration/interface-with-const/expected/index.html index b5d2a3b..ac8c9e2 100644 --- a/tests/integration/interface-with-const/expected/index.html +++ b/tests/integration/interface-with-const/expected/index.html @@ -8,11 +8,10 @@

PHP Interface with const

interface \TYPO3\CMS\Core\ TestInterface - - +

Lorem Ipsum Dolor!

-
+
const ATOM diff --git a/tests/integration/interface-with-method/expected/index.html b/tests/integration/interface-with-method/expected/index.html index 3bdcb48..9abb75c 100644 --- a/tests/integration/interface-with-method/expected/index.html +++ b/tests/integration/interface-with-method/expected/index.html @@ -8,33 +8,28 @@

PHP Interface with implicit namespace

interface \TYPO3\CMS\Core\ TestInterface - -
+

Lorem Ipsum Dolor!

-
- +
setDate ( int $year, int $month, int $day) - -
+

Set the date.

-
+
-
- +
getDate ( ) : int - -
+

Get the date.

-
+
diff --git a/tests/integration/interface-without-namespace/expected/index.html b/tests/integration/interface-without-namespace/expected/index.html index 97b77eb..1e02f40 100644 --- a/tests/integration/interface-without-namespace/expected/index.html +++ b/tests/integration/interface-without-namespace/expected/index.html @@ -7,8 +7,7 @@

PHP Interface

id="testinterface"> interface TestInterface - - +

Lorem Ipsum Dolor!

@@ -16,4 +15,4 @@

PHP Interface

- \ No newline at end of file + diff --git a/tests/integration/method-illegal-combinations/expected/index.html b/tests/integration/method-illegal-combinations/expected/index.html index 46bd9bb..a6c2bc9 100644 --- a/tests/integration/method-illegal-combinations/expected/index.html +++ b/tests/integration/method-illegal-combinations/expected/index.html @@ -14,7 +14,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -28,7 +28,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -42,7 +42,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -56,7 +56,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -70,7 +70,7 @@

PHP method with allowed modifier combinations

Do something

-
+
diff --git a/tests/integration/method-legal-combinations/expected/index.html b/tests/integration/method-legal-combinations/expected/index.html index 7705229..cb64896 100644 --- a/tests/integration/method-legal-combinations/expected/index.html +++ b/tests/integration/method-legal-combinations/expected/index.html @@ -12,7 +12,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -26,7 +26,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -39,7 +39,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -52,7 +52,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -65,7 +65,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -78,7 +78,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -92,7 +92,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -106,7 +106,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -121,7 +121,7 @@

PHP method with allowed modifier combinations

Do something

-
+
@@ -135,7 +135,7 @@

PHP method with allowed modifier combinations

Do something

-
+
diff --git a/tests/integration/static-method/expected/index.html b/tests/integration/static-method/expected/index.html index 5b2ec74..4d9f6bc 100644 --- a/tests/integration/static-method/expected/index.html +++ b/tests/integration/static-method/expected/index.html @@ -12,7 +12,7 @@

PHP static method

Do something

-
+ diff --git a/tests/integration/trait-directive/expected/index.html b/tests/integration/trait-directive/expected/index.html index b4449ae..7ea65ea 100644 --- a/tests/integration/trait-directive/expected/index.html +++ b/tests/integration/trait-directive/expected/index.html @@ -8,11 +8,10 @@

PHP Trait

trait \TYPO3\CMS\Core\Context\ ContextAwareTrait - - +
-
+
public const FLAG_1 @@ -21,24 +20,24 @@

PHP Trait

-
+
setContext ( Context $context)
-
+
-
+
getContext ( )
-
+
diff --git a/tests/integration/trait-with-link/expected/index.html b/tests/integration/trait-with-link/expected/index.html index b829b25..6675939 100644 --- a/tests/integration/trait-with-link/expected/index.html +++ b/tests/integration/trait-with-link/expected/index.html @@ -8,11 +8,10 @@

PHP Trait

trait \TYPO3\CMS\Core\Context\ ContextAwareTrait - - +
-
+
public const FLAG_1 @@ -21,24 +20,24 @@

PHP Trait

-
+
setContext ( Context $context)
-
+
-
+
getContext ( )
-
+