Skip to content

Commit 6e3ebca

Browse files
authored
Merge pull request #361 from UFOMelkor/hotfix/360-php56
Load php7 code in php7 only
2 parents a74f2fc + 8289946 commit 6e3ebca

File tree

4 files changed

+72
-44
lines changed

4 files changed

+72
-44
lines changed

src/Hal/Component/Ast/NodeTraverser.php

Lines changed: 4 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public function __construct(Mother $traverser, $stopCondition = null)
3030
{
3131
if(null === $stopCondition) {
3232
$stopCondition = function($node) {
33-
if($node instanceof Node\Stmt\Class_ || $node instanceof Node\Stmt\Interface_) {
33+
if ($node instanceof Node\Stmt\Class_ || $node instanceof Node\Stmt\Interface_) {
3434
return false;
3535
}
3636

@@ -96,47 +96,7 @@ public function traverseArray(array $nodes, array $visitors) {
9696
}
9797

9898
if (PHP_VERSION_ID >= 70000) {
99-
class NodeTraverser extends Mother
100-
{
101-
/** @var Traverser */
102-
private $traverser;
103-
104-
public function __construct($cloneNodes = false, $stopCondition = null)
105-
{
106-
parent::__construct();
107-
$this->traverser = new Traverser($this, $stopCondition);
108-
}
109-
110-
public function traverseNode(Node $node): Node
111-
{
112-
return parent::traverseNode($node);
113-
}
114-
115-
protected function traverseArray(array $nodes): array
116-
{
117-
return $this->traverser->traverseArray($nodes, $this->visitors);
118-
}
119-
}
99+
class_alias(Php7NodeTraverser::class, __NAMESPACE__ . '\\NodeTraverser');
120100
} else {
121-
class NodeTraverser extends Mother
122-
{
123-
/** @var Traverser */
124-
private $traverser;
125-
126-
public function __construct($cloneNodes = false, $stopCondition = null)
127-
{
128-
parent::__construct();
129-
$this->traverser = new Traverser($this, $stopCondition);
130-
}
131-
132-
public function traverseNode(Node $node)
133-
{
134-
return parent::traverseNode($node);
135-
}
136-
137-
protected function traverseArray(array $nodes)
138-
{
139-
return $this->traverser->traverseArray($nodes, $this->visitors);
140-
}
141-
}
142-
}
101+
class_alias(Php5NodeTraverser::class, __NAMESPACE__ . '\\NodeTraverser');
102+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
namespace Hal\Component\Ast;
3+
4+
use PhpParser\Node;
5+
use PhpParser\NodeTraverser as Mother;
6+
7+
class Php5NodeTraverser extends Mother
8+
{
9+
/** @var Traverser */
10+
private $traverser;
11+
12+
public function __construct($cloneNodes = false, $stopCondition = null)
13+
{
14+
parent::__construct();
15+
$this->traverser = new Traverser($this, $stopCondition);
16+
}
17+
18+
public function traverseNode(Node $node)
19+
{
20+
return parent::traverseNode($node);
21+
}
22+
23+
protected function traverseArray(array $nodes)
24+
{
25+
return $this->traverser->traverseArray($nodes, $this->visitors);
26+
}
27+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
namespace Hal\Component\Ast;
3+
4+
use PhpParser\Node;
5+
use PhpParser\NodeTraverser as Mother;
6+
7+
class Php7NodeTraverser extends Mother
8+
{
9+
/** @var Traverser */
10+
private $traverser;
11+
12+
public function __construct($cloneNodes = false, $stopCondition = null)
13+
{
14+
parent::__construct();
15+
$this->traverser = new Traverser($this, $stopCondition);
16+
}
17+
18+
public function traverseNode(Node $node): Node
19+
{
20+
return parent::traverseNode($node);
21+
}
22+
23+
protected function traverseArray(array $nodes): array
24+
{
25+
return $this->traverser->traverseArray($nodes, $this->visitors);
26+
}
27+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
namespace Test\Hal\Component\Ast;
3+
4+
use Hal\Component\Ast\NodeTraverser;
5+
use PhpParser\NodeTraverser as BaseTraverser;
6+
use PHPUnit_Framework_TestCase;
7+
8+
class NodeTraverserTest extends PHPUnit_Framework_TestCase
9+
{
10+
public function testItCanBeInstantiated()
11+
{
12+
$this->assertInstanceOf(BaseTraverser::class, new NodeTraverser());
13+
}
14+
}

0 commit comments

Comments
 (0)