Skip to content

Commit 0467b75

Browse files
committed
added Modifier
1 parent d0c7e3e commit 0467b75

File tree

7 files changed

+54
-25
lines changed

7 files changed

+54
-25
lines changed

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ $class->addConstant('ID', 123)
7777
->setFinal();
7878

7979
$class->addProperty('items', [1, 2, 3])
80-
->setPrivate() // or setVisibility('private')
80+
->setPrivate() // or setVisibility(Nette\PhpGenerator\Modifier::Private)
8181
->setStatic()
8282
->addComment('@var int[]');
8383

src/PhpGenerator/ClassLike.php

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,23 @@ abstract class ClassLike
2121
use Traits\CommentAware;
2222
use Traits\AttributeAware;
2323

24-
public const
25-
VisibilityPublic = 'public',
26-
VisibilityProtected = 'protected',
27-
VisibilityPrivate = 'private';
24+
/** @deprecated use Modifier::Public */
25+
public const VisibilityPublic = Modifier::Public;
2826

29-
/** @deprecated use ClassLike::VisibilityPublic */
30-
public const VISIBILITY_PUBLIC = self::VisibilityPublic;
27+
/** @deprecated use Modifier::Protected */
28+
public const VisibilityProtected = Modifier::Protected;
3129

32-
/** @deprecated use ClassLike::VisibilityProtected */
33-
public const VISIBILITY_PROTECTED = self::VisibilityProtected;
30+
/** @deprecated use Modifier::Private */
31+
public const VisibilityPrivate = Modifier::Private;
3432

35-
/** @deprecated use ClassLike::VisibilityPrivate */
36-
public const VISIBILITY_PRIVATE = self::VisibilityPrivate;
33+
/** @deprecated use Modifier::Public */
34+
public const VISIBILITY_PUBLIC = Modifier::Public;
35+
36+
/** @deprecated use Modifier::Protected */
37+
public const VISIBILITY_PROTECTED = Modifier::Protected;
38+
39+
/** @deprecated use Modifier::Private */
40+
public const VISIBILITY_PRIVATE = Modifier::Private;
3741

3842
private ?PhpNamespace $namespace;
3943
private ?string $name;

src/PhpGenerator/Extractor.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -428,9 +428,9 @@ private function formatValue(Node\Expr $value, int $level): Literal
428428
private function toVisibility(int $flags): ?string
429429
{
430430
return match (true) {
431-
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PUBLIC) => ClassType::VisibilityPublic,
432-
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PROTECTED) => ClassType::VisibilityProtected,
433-
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PRIVATE) => ClassType::VisibilityPrivate,
431+
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PUBLIC) => Modifier::Public,
432+
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PROTECTED) => Modifier::Protected,
433+
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PRIVATE) => Modifier::Private,
434434
default => null,
435435
};
436436
}

src/PhpGenerator/Factory.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,8 +310,8 @@ private function getAttributes($from): array
310310
private function getVisibility($from): string
311311
{
312312
return $from->isPrivate()
313-
? ClassLike::VisibilityPrivate
314-
: ($from->isProtected() ? ClassLike::VisibilityProtected : ClassLike::VisibilityPublic);
313+
? Modifier::Private
314+
: ($from->isProtected() ? Modifier::Protected : Modifier::Public);
315315
}
316316

317317

src/PhpGenerator/Method.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public function addPromotedParameter(string $name, mixed $defaultValue = null):
9999
/** @throws Nette\InvalidStateException */
100100
public function validate(): void
101101
{
102-
if ($this->abstract && ($this->final || $this->visibility === ClassLike::VisibilityPrivate)) {
102+
if ($this->abstract && ($this->final || $this->visibility === Modifier::Private)) {
103103
throw new Nette\InvalidStateException("Method $this->name() cannot be abstract and final or private at the same time.");
104104
}
105105
}

src/PhpGenerator/Modifier.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
/**
4+
* This file is part of the Nette Framework (https://nette.org)
5+
* Copyright (c) 2004 David Grudl (https://davidgrudl.com)
6+
*/
7+
8+
declare(strict_types=1);
9+
10+
namespace Nette\PhpGenerator;
11+
12+
use Nette;
13+
14+
15+
/**
16+
* Class members modifiers.
17+
*/
18+
final class Modifier
19+
{
20+
use Nette\StaticClass;
21+
22+
public const Public = 'public';
23+
public const Protected = 'protected';
24+
public const Private = 'private';
25+
}

src/PhpGenerator/Traits/VisibilityAware.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
namespace Nette\PhpGenerator\Traits;
1111

1212
use Nette;
13-
use Nette\PhpGenerator\ClassLike;
13+
use Nette\PhpGenerator\Modifier;
1414

1515

1616
/**
@@ -27,7 +27,7 @@ trait VisibilityAware
2727
*/
2828
public function setVisibility(?string $val): static
2929
{
30-
if (!in_array($val, [ClassLike::VisibilityPublic, ClassLike::VisibilityProtected, ClassLike::VisibilityPrivate, null], true)) {
30+
if (!in_array($val, [Modifier::Public, Modifier::Protected, Modifier::Private, null], true)) {
3131
throw new Nette\InvalidArgumentException('Argument must be public|protected|private.');
3232
}
3333

@@ -44,39 +44,39 @@ public function getVisibility(): ?string
4444

4545
public function setPublic(): static
4646
{
47-
$this->visibility = ClassLike::VisibilityPublic;
47+
$this->visibility = Modifier::Public;
4848
return $this;
4949
}
5050

5151

5252
public function isPublic(): bool
5353
{
54-
return $this->visibility === ClassLike::VisibilityPublic || $this->visibility === null;
54+
return $this->visibility === Modifier::Public || $this->visibility === null;
5555
}
5656

5757

5858
public function setProtected(): static
5959
{
60-
$this->visibility = ClassLike::VisibilityProtected;
60+
$this->visibility = Modifier::Protected;
6161
return $this;
6262
}
6363

6464

6565
public function isProtected(): bool
6666
{
67-
return $this->visibility === ClassLike::VisibilityProtected;
67+
return $this->visibility === Modifier::Protected;
6868
}
6969

7070

7171
public function setPrivate(): static
7272
{
73-
$this->visibility = ClassLike::VisibilityPrivate;
73+
$this->visibility = Modifier::Private;
7474
return $this;
7575
}
7676

7777

7878
public function isPrivate(): bool
7979
{
80-
return $this->visibility === ClassLike::VisibilityPrivate;
80+
return $this->visibility === Modifier::Private;
8181
}
8282
}

0 commit comments

Comments
 (0)