Skip to content

Commit 9e75310

Browse files
committed
PhpFile::addNamespace() & removeNamespace() - passing objects is deprecated (BC break)
1 parent b2d8a85 commit 9e75310

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/PhpGenerator/PhpFile.php

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,12 @@ public function addFunction(string $name): GlobalFunction
125125
*/
126126
public function addNamespace(string|PhpNamespace $namespace): PhpNamespace
127127
{
128-
$res = $namespace instanceof PhpNamespace
129-
? ($this->namespaces[$namespace->getName()] = $namespace)
130-
: ($this->namespaces[$namespace] ??= new PhpNamespace($namespace));
131-
128+
if ($namespace instanceof PhpNamespace) {
129+
trigger_error('Passing PhpNamespace object to ' . __METHOD__ . '() is deprecated, use add() instead.', E_USER_DEPRECATED);
130+
$res = $this->namespaces[$namespace->getName()] = $namespace;
131+
} else {
132+
$res = $this->namespaces[$namespace] ??= new PhpNamespace($namespace);
133+
}
132134
$this->refreshBracketedSyntax();
133135
return $res;
134136
}
@@ -139,7 +141,13 @@ public function addNamespace(string|PhpNamespace $namespace): PhpNamespace
139141
*/
140142
public function removeNamespace(string|PhpNamespace $namespace): static
141143
{
142-
$name = $namespace instanceof PhpNamespace ? $namespace->getName() : $namespace;
144+
if ($namespace instanceof PhpNamespace) {
145+
trigger_error('Passing PhpNamespace object to ' . __METHOD__ . '() is deprecated, use string name instead.', E_USER_DEPRECATED);
146+
$name = $namespace->getName();
147+
} else {
148+
$name = $namespace;
149+
}
150+
143151
unset($this->namespaces[$name]);
144152
return $this;
145153
}

tests/PhpGenerator/PhpFile.addNamespace.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ $namespace->addClass('Bar');
1111

1212
$phpFile = new PhpFile;
1313
$phpFile->addNamespace('Foo');
14-
$phpFile->addNamespace($namespace); // overwrite
14+
@$phpFile->addNamespace($namespace); // deprecated overwrite
1515

1616

1717
same(

0 commit comments

Comments
 (0)