Skip to content

Commit 019fda8

Browse files
committed
symfony's api references
1 parent 10b7a5d commit 019fda8

File tree

15 files changed

+83
-17
lines changed

15 files changed

+83
-17
lines changed

_build/notes.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,10 @@ Changes needed in symfony.com
44
- For `caution`, `note` and `tip` : remove `class="last"` in favor to `:last-child`
55
- idem about `.first`
66
- idem for `sidebar` (the `.first` css class is not even used in css)
7+
8+
9+
Notes
10+
=====
11+
12+
- warning about exceptions thrown and abortOnError conf
13+
- add some format check on references

_build/src/Reference/ClassReference.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,24 @@
44

55
use Doctrine\RST\Environment;
66
use Doctrine\RST\Reference;
7-
use Doctrine\RST\References\Resolver;
87
use Doctrine\RST\References\ResolvedReference;
98

109
class ClassReference extends Reference
1110
{
11+
private const BASE__URL = 'https://api.symfony.com';
12+
1213
public function getName(): string
1314
{
1415
return 'class';
1516
}
1617

1718
public function resolve(Environment $environment, string $data): ResolvedReference
1819
{
19-
$resolver = new Resolver();
20-
return $resolver->resolve($environment, $data);
20+
$className = str_replace('\\\\', '\\', $data);
21+
22+
return new ResolvedReference(
23+
$className,
24+
sprintf('%s/%s/%s.html', self::BASE__URL, '4.1', str_replace('\\', '/', $className))
25+
);
2126
}
22-
}
27+
}

_build/src/Reference/MethodReference.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,27 @@
44

55
use Doctrine\RST\Environment;
66
use Doctrine\RST\Reference;
7-
use Doctrine\RST\References\Resolver;
87
use Doctrine\RST\References\ResolvedReference;
98

109
class MethodReference extends Reference
1110
{
11+
private const BASE__URL = 'https://api.symfony.com';
12+
1213
public function getName(): string
1314
{
1415
return 'method';
1516
}
1617

1718
public function resolve(Environment $environment, string $data): ResolvedReference
1819
{
19-
$resolver = new Resolver();
20-
return $resolver->resolve($environment, $data);
20+
$className = explode('::', $data)[0];
21+
$className = str_replace('\\\\', '\\', $className);
22+
23+
$methodName = explode('::', $data)[1];
24+
25+
return new ResolvedReference(
26+
$methodName.'()',
27+
sprintf('%s/%s/%s.html#method_%s', self::BASE__URL, '4.1', str_replace('\\', '/', $className), $methodName)
28+
);
2129
}
2230
}

_build/src/Reference/NamespaceReference.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,24 @@
44

55
use Doctrine\RST\Environment;
66
use Doctrine\RST\Reference;
7-
use Doctrine\RST\References\Resolver;
87
use Doctrine\RST\References\ResolvedReference;
98

109
class NamespaceReference extends Reference
1110
{
11+
private const BASE__URL = 'https://api.symfony.com';
12+
1213
public function getName(): string
1314
{
1415
return 'namespace';
1516
}
1617

1718
public function resolve(Environment $environment, string $data): ResolvedReference
1819
{
19-
$resolver = new Resolver();
20-
return $resolver->resolve($environment, $data);
20+
$className = str_replace('\\\\', '\\', $data);
21+
22+
return new ResolvedReference(
23+
$className,
24+
sprintf('%s/%s/%s.html', self::BASE__URL, '4.1', str_replace('\\', '/', $className))
25+
);
2126
}
2227
}

_build/tests/IntegrationTest.php

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,8 @@ public function integrationProvider()
5050
'folder' => 'toctree',
5151
];
5252

53-
yield 'refReference' => [
54-
'folder' => 'refReference',
55-
];
56-
57-
yield 'refReferenceError' => [
58-
'folder' => 'refReferenceError',
53+
yield 'ref-reference' => [
54+
'folder' => 'ref-reference',
5955
];
6056
}
6157

@@ -133,14 +129,26 @@ public function parserUnitBlockProvider()
133129
yield 'literal' => [
134130
'documentName' => 'literal',
135131
];
132+
133+
yield 'class-reference' => [
134+
'documentName' => 'class-reference',
135+
];
136+
137+
yield 'namespace-reference' => [
138+
'documentName' => 'namespace-reference',
139+
];
140+
141+
yield 'method-reference' => [
142+
'documentName' => 'method-reference',
143+
];
136144
}
137145

138146
public function testRefReferenceError()
139147
{
140148
$this->expectException(\RuntimeException::class);
141149

142150
$this->createBuilder()->build(
143-
sprintf('%s/fixtures/source/refReferenceError', __DIR__),
151+
sprintf('%s/fixtures/source/ref-reference-error', __DIR__),
144152
__DIR__.'/_output',
145153
true // verbose
146154
);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
</head>
6+
<body>
7+
<p><a class="reference external" href="https://api.symfony.com/4.1/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.html" title="Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel">Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel</a></p>
8+
</body>
9+
</html>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
</head>
6+
<body>
7+
<p><a class="reference external" href="https://api.symfony.com/4.1/Symfony/Component/HttpFoundation/RequestStack.html#method_getCurrentRequest" title="Symfony\Component\HttpFoundation\RequestStack::getCurrentRequest()">getCurrentRequest()</a></p>
8+
</body>
9+
</html>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
</head>
6+
<body>
7+
<p><a class="reference external" href="https://api.symfony.com/4.1/Symfony/Component/HttpFoundation.html" title="Symfony\Component\HttpFoundation">HttpFoundation</a></p>
8+
</body>
9+
</html>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
:class:`Symfony\\Component\\HttpKernel\\DependencyInjection\\ContainerAwareHttpKernel`
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
:method:`Symfony\\Component\\HttpFoundation\\RequestStack::getCurrentRequest`
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
:namespace:`Symfony\\Component\\HttpFoundation`

0 commit comments

Comments
 (0)