From b10bfa687919fdbaf1444bb6f114bab5d15386cc Mon Sep 17 00:00:00 2001 From: Brent Shaffer Date: Wed, 12 Nov 2025 09:15:02 -0800 Subject: [PATCH 1/2] fix(docs): proto references for php reserved words --- dev/src/DocFx/Node/XrefTrait.php | 10 ++++++++++ dev/src/DocFx/ReservedNames.php | 31 +++++++++++++++++++++++++++++++ dev/tests/Unit/DocFx/NodeTest.php | 13 +++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 dev/src/DocFx/ReservedNames.php diff --git a/dev/src/DocFx/Node/XrefTrait.php b/dev/src/DocFx/Node/XrefTrait.php index 924eabb7dd33..7bfe0d90570d 100644 --- a/dev/src/DocFx/Node/XrefTrait.php +++ b/dev/src/DocFx/Node/XrefTrait.php @@ -17,6 +17,8 @@ namespace Google\Cloud\Dev\DocFx\Node; +use Google\Cloud\Dev\DocFx\ReservedNames; + /** * @internal */ @@ -115,6 +117,14 @@ function ($matches) { $classParts = empty($class) ? [] : explode('.', $class); + // check for reserved names + $classParts = array_map( + fn ($name) => (false === array_search( + strtolower($name), ReservedNames::RESERVED_NAMES + ) ? '' : 'PB') . $name, + $classParts + ); + if ($property) { // Convert the underscore property name to camel case getter method name $property = ltrim($property, '.'); diff --git a/dev/src/DocFx/ReservedNames.php b/dev/src/DocFx/ReservedNames.php new file mode 100644 index 000000000000..fa3e429b381e --- /dev/null +++ b/dev/src/DocFx/ReservedNames.php @@ -0,0 +1,31 @@ + 'Google\\Cloud\\AIPlatform\\V1', 'google.bigtable.admin.v2' => 'Google\\Cloud\\Bigtable\\Admin\\V2', + 'google.bigtable.v2' => 'Google\\Cloud\\Bigtable\\V2', 'google.logging.v2' => 'Google\\Cloud\\Logging\\V2', + 'google.cloud.servicedirectory.v1' => 'Google\\Cloud\\ServiceDirectory\\V1', ]; public function replace(string $description) { return $this->replaceProtoRef($description); @@ -273,6 +275,17 @@ public function provideReplaceProtoRefWithXref() . ' instance_schema_uri.' ], [ + // Reserved word used in class name + '[Namespace][google.cloud.servicedirectory.v1.Namespace]', + 'Namespace', + ], + [ + // Reserved word used in path name + '[Encoding][google.bigtable.v2.Type.String.Encoding]', + 'Encoding', + ], + [ + // Parenthesis in code samples should not be modified 'Testing that a code sample like $foo["bar"]["baz"] does not get replaced', 'Testing that a code sample like $foo["bar"]["baz"] does not get replaced' ], From 87b8bae7d11057242a036d7822b4203930486a25 Mon Sep 17 00:00:00 2001 From: Brent Shaffer Date: Fri, 14 Nov 2025 13:06:28 -0800 Subject: [PATCH 2/2] Update dev/src/DocFx/ReservedNames.php --- dev/src/DocFx/ReservedNames.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/src/DocFx/ReservedNames.php b/dev/src/DocFx/ReservedNames.php index fa3e429b381e..dd246dfe518d 100644 --- a/dev/src/DocFx/ReservedNames.php +++ b/dev/src/DocFx/ReservedNames.php @@ -28,4 +28,4 @@ class ReservedNames 'yield', 'int', 'float', 'bool', 'string', 'true', 'false', 'null', 'void', 'iterable', ]; -} \ No newline at end of file +}