Skip to content

Commit 2870648

Browse files
committed
added Modifier
1 parent b991c7f commit 2870648

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
@@ -90,7 +90,7 @@ $class->addConstant('ID', 123)
9090
->setFinal();
9191

9292
$class->addProperty('items', [1, 2, 3])
93-
->setPrivate() // or setVisibility('private')
93+
->setPrivate() // or setVisibility(Nette\PhpGenerator\Modifier::Private)
9494
->setStatic()
9595
->addComment('@var int[]');
9696

src/PhpGenerator/ClassLike.php

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

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

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

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

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

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

src/PhpGenerator/Extractor.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -483,9 +483,9 @@ private function toValue(Node\Expr $node): mixed
483483
private function toVisibility(int $flags): ?string
484484
{
485485
return match (true) {
486-
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PUBLIC) => ClassType::VisibilityPublic,
487-
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PROTECTED) => ClassType::VisibilityProtected,
488-
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PRIVATE) => ClassType::VisibilityPrivate,
486+
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PUBLIC) => Modifier::Public,
487+
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PROTECTED) => Modifier::Protected,
488+
(bool) ($flags & Node\Stmt\Class_::MODIFIER_PRIVATE) => Modifier::Private,
489489
default => null,
490490
};
491491
}

src/PhpGenerator/Factory.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,8 @@ private function getAttributes($from): array
307307
private function getVisibility($from): string
308308
{
309309
return $from->isPrivate()
310-
? ClassLike::VisibilityPrivate
311-
: ($from->isProtected() ? ClassLike::VisibilityProtected : ClassLike::VisibilityPublic);
310+
? Modifier::Private
311+
: ($from->isProtected() ? Modifier::Protected : Modifier::Public);
312312
}
313313

314314

src/PhpGenerator/Method.php

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

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)