summaryrefslogtreecommitdiffstats
path: root/Autoload-php8.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Autoload-php8.patch')
-rw-r--r--Autoload-php8.patch362
1 files changed, 0 insertions, 362 deletions
diff --git a/Autoload-php8.patch b/Autoload-php8.patch
deleted file mode 100644
index 11923cb..0000000
--- a/Autoload-php8.patch
+++ /dev/null
@@ -1,362 +0,0 @@
-From 3b4082f059fb9e2d8b7039ea51b554427336af67 Mon Sep 17 00:00:00 2001
-From: Arne Blankerts <Arne@Blankerts.de>
-Date: Sun, 23 Aug 2020 23:54:20 +0200
-Subject: [PATCH] Close #95
-
----
- CHANGELOG.md | 6 +++-
- composer.json | 3 +-
- composer.lock | 8 +++--
- phive.xml | 4 +--
- phpunit.xml.dist | 46 ++++++++++++------------
- src/Parser.php | 19 +++++++++-
- tests/AutoloadRendererTest.php | 28 ++++++---------
- tests/FactoryTest.php | 2 +-
- tests/ParserTest.php | 55 +++++++++++------------------
- tests/_data/parser/relative.php | 4 +++
- tests/classdependencysorterTest.php | 5 ++-
- 11 files changed, 93 insertions(+), 87 deletions(-)
- create mode 100644 tests/_data/parser/relative.php
-
-diff --git a/src/Parser.php b/src/Parser.php
-index c658b28..3d50bbf 100644
---- a/src/Parser.php
-+++ b/src/Parser.php
-@@ -43,6 +43,12 @@
- define('T_TRAIT', -1);
- }
-
-+ // PHP 8.0 forward compat
-+ if (!defined('T_NAME_FULLY_QUALIFIED')) {
-+ define('T_NAME_FULLY_QUALIFIED', -1);
-+ define('T_NAME_QUALIFIED', -1);
-+ }
-+
- /**
- * Namespace aware parser to find and extract defined classes within php source files
- *
-@@ -168,6 +174,9 @@ private function processClass($pos) {
- case T_WHITESPACE: {
- break;
- }
-+
-+ case T_NAME_FULLY_QUALIFIED:
-+ case T_NAME_QUALIFIED:
- case T_STRING: {
- $$mode .= $tok[1];
- break;
-@@ -186,6 +195,7 @@ private function processClass($pos) {
- $mode = 'implements';
- break;
- }
-+
- case ',': {
- if ($mode === 'implements') {
- $implementsList[] = $this->resolveDependencyName($implements);
-@@ -195,7 +205,8 @@ private function processClass($pos) {
- }
- default: {
- throw new ParserException(sprintf(
-- 'Parse error while trying to process class definition (unexpected token in name).'
-+ 'Parse error while trying to process class definition (unexpected token "%s" in name).',
-+ \token_name($tok[0])
- ), ParserException::ParseError
- );
- }
-@@ -237,6 +248,8 @@ private function processInterface($pos) {
- foreach(array_slice($stack, 1, -1) as $tok) {
- switch ($tok[0]) {
- case T_NS_SEPARATOR:
-+ case T_NAME_QUALIFIED:
-+ case T_NAME_FULLY_QUALIFIED:
- case T_STRING: {
- $$mode .= $tok[1];
- break;
-@@ -406,6 +419,8 @@ private function parseUseOfTrait($stackSize, $stack) {
- break;
- }
- case T_NS_SEPARATOR:
-+ case T_NAME_QUALIFIED:
-+ case T_NAME_FULLY_QUALIFIED:
- case T_STRING: {
- $use .= $current[1];
- break;
-@@ -458,6 +473,8 @@ private function parseUseAsImport($stack) {
- break;
- }
- case T_NS_SEPARATOR:
-+ case T_NAME_QUALIFIED:
-+ case T_NAME_FULLY_QUALIFIED:
- case T_STRING: {
- $$mode .= $current[1];
- break;
-diff --git a/tests/AutoloadRendererTest.php b/tests/AutoloadRendererTest.php
-index fcf0d0e..c1dd00f 100644
---- a/tests/AutoloadRendererTest.php
-+++ b/tests/AutoloadRendererTest.php
-@@ -37,12 +37,10 @@
-
- namespace TheSeer\Autoload\Tests {
-
-- use TheSeer\Autoload\Parser;
-+ use TheSeer\Autoload\AutoloadBuilderException;
- use TheSeer\Autoload\AutoloadRenderer;
-
- /**
-- * Unit tests for PHPFilter iterator class
-- *
- * @author Arne Blankerts <arne@blankerts.de>
- * @copyright Arne Blankerts <arne@blankerts.de>, All rights reserved.
- */
-@@ -51,7 +49,7 @@ class AutoloadRendererTest extends \PHPUnit\Framework\TestCase {
- private $classlist;
- private $template;
-
-- public function setUp() {
-+ public function setUp(): void {
- $this->classlist = array();
- $this->classlist['demo1'] = realpath(__DIR__ . '/_data/parser/class.php');
- $this->classlist['demo2'] = realpath(__DIR__ . '/_data/parser/class.php');
-@@ -59,7 +57,6 @@ public function setUp() {
- }
-
- /**
-- *
- * @covers \TheSeer\Autoload\AutoloadRenderer::__construct
- * @covers \TheSeer\Autoload\AutoloadRenderer::render
- */
-@@ -67,9 +64,9 @@ public function testDefaultRendering() {
- $ab = new \TheSeer\Autoload\AutoloadRenderer($this->classlist);
- $expected = " \$classes = array(\n 'demo1' => '".__DIR__."/_data/parser/class.php',\n";
- $expected = strtr($expected, '\\', '/');
-- $this->assertContains($expected, $ab->render($this->template));
-+ $this->assertStringContainsString($expected, $ab->render($this->template));
- $expected = "require \$classes[\$cn]";
-- $this->assertContains($expected, $ab->render($this->template));
-+ $this->assertStringContainsString($expected, $ab->render($this->template));
- }
-
- /**
-@@ -81,7 +78,7 @@ public function testWindowsLFRendering() {
- $ab = new \TheSeer\Autoload\AutoloadRenderer($this->classlist);
- $ab->setLineBreak("\r\n");
- $expected = "_data/parser/class.php',\r\n";
-- $this->assertContains($expected, $ab->render($this->template));
-+ $this->assertStringContainsString($expected, $ab->render($this->template));
- }
-
- /**
-@@ -104,7 +101,7 @@ public function testIndentWithTabsRendering() {
- $ab = new \TheSeer\Autoload\AutoloadRenderer($this->classlist);
- $ab->setIndent("\t");
- $expected = "\t'demo2'";
-- $this->assertContains($expected, $ab->render($this->template));
-+ $this->assertStringContainsString($expected, $ab->render($this->template));
- }
-
-
-@@ -120,10 +117,10 @@ public function testSetBaseDirRendering() {
-
- $expected = "require __DIR__ . \$classes[\$cn];";
- $expected = strtr($expected, '\\', '/');
-- $this->assertContains($expected, $result);
-+ $this->assertStringContainsString($expected, $result);
-
- $expected = " \$classes = array(\n 'demo1' => '/tests/_data/parser/class.php',\n";
-- $this->assertContains($expected, $result);
-+ $this->assertStringContainsString($expected, $result);
- }
-
- /**
-@@ -135,7 +132,7 @@ public function testRenderingInCompatMode() {
- $ab->setCompat(true);
- $ab->setBaseDir(realpath(__DIR__));
- $expected = "require dirname(__FILE__) . \$classes[\$cn];";
-- $this->assertContains($expected, $ab->render($this->template));
-+ $this->assertStringContainsString($expected, $ab->render($this->template));
-
- }
-
-@@ -146,15 +143,12 @@ public function testRelativeSubBaseDirRendering() {
- $ab = new \TheSeer\Autoload\AutoloadRenderer($this->classlist);
- $ab->setBaseDir(realpath(__DIR__.'/_data/dependency'));
- $expected = "'demo1' => '/../parser/class.php'";
-- $this->assertContains($expected, $ab->render($this->template));
-+ $this->assertStringContainsString($expected, $ab->render($this->template));
- }
-
-- /**
-- *
-- * @expectedException \TheSeer\Autoload\AutoloadBuilderException
-- */
- public function testSettingInvalidTimestamp() {
- $ab = new \TheSeer\Autoload\AutoloadRenderer($this->classlist);
-+ $this->expectException(AutoloadBuilderException::class);
- $ab->setTimestamp('Bad');
- }
-
-diff --git a/tests/FactoryTest.php b/tests/FactoryTest.php
-index df2978d..1e36a86 100644
---- a/tests/FactoryTest.php
-+++ b/tests/FactoryTest.php
-@@ -44,7 +44,7 @@
-
- class FactoryTest extends \PHPUnit\Framework\TestCase {
-
-- public function setUp() {
-+ public function setUp(): void {
- $this->factory = new Factory();
- $this->config = new Config(array());
- $this->factory->setConfig($this->config);
-diff --git a/tests/ParserTest.php b/tests/ParserTest.php
-index f28f16f..3b3f27d 100644
---- a/tests/ParserTest.php
-+++ b/tests/ParserTest.php
-@@ -38,14 +38,9 @@
- namespace TheSeer\Autoload\Tests {
-
- use TheSeer\Autoload\Parser;
-+ use TheSeer\Autoload\ParserException;
- use TheSeer\Autoload\SourceFile;
-
-- /**
-- * Unit tests for ClassFinder class
-- *
-- * @author Arne Blankerts <arne@blankerts.de>
-- * @copyright Arne Blankerts <arne@blankerts.de>, All rights reserved.
-- */
- class ParserTest extends \PHPUnit\Framework\TestCase {
-
- public function testNoClassDefined() {
-@@ -84,66 +79,52 @@ public function testRedeclaringThrowsException() {
- $this->assertContains('demo', $rc->getRedeclarations());
- }
-
-- /**
-- * @expectedException \TheSeer\Autoload\ParserException
-- * @expectedExceptionCode \TheSeer\Autoload\ParserException::ParseError
-- */
- public function testInvalidClassnameThrowsException() {
- $parser = new \TheSeer\Autoload\Parser;
-+ $this->expectException(ParserException::class);
-+ $this->expectExceptionCode(ParserException::ParseError);
- $parser->parse(new SourceFile((__DIR__.'/_data/parser/parseerror1.php')));
- }
-
-- /**
-- * @expectedException \TheSeer\Autoload\ParserException
-- * @expectedExceptionCode \TheSeer\Autoload\ParserException::ParseError
-- */
- public function testInvalidClassnameWithExtendsThrowsException() {
- $parser = new \TheSeer\Autoload\Parser;
-+ $this->expectException(ParserException::class);
-+ $this->expectExceptionCode(ParserException::ParseError);
- $parser->parse(new SourceFile((__DIR__.'/_data/parser/parseerror2.php')));
- }
-
-- /**
-- * @expectedException \TheSeer\Autoload\ParserException
-- * @expectedExceptionCode \TheSeer\Autoload\ParserException::ParseError
-- */
- public function testInvalidClassnameForExtendsThrowsException() {
- $parser = new \TheSeer\Autoload\Parser(true);
-+ $this->expectException(ParserException::class);
-+ $this->expectExceptionCode(ParserException::ParseError);
- $parser->parse(new SourceFile((__DIR__.'/_data/parser/parseerror3.php')));
- }
-
-- /**
-- * @expectedException \TheSeer\Autoload\ParserException
-- * @expectedExceptionCode \TheSeer\Autoload\ParserException::ParseError
-- */
- public function testInvalidClassnameForImplementsThrowsException() {
- $parser = new \TheSeer\Autoload\Parser(true);
-+ $this->expectException(ParserException::class);
-+ $this->expectExceptionCode(ParserException::ParseError);
- $parser->parse(new SourceFile((__DIR__.'/_data/parser/parseerror4.php')));
- }
-
-- /**
-- * @expectedException \TheSeer\Autoload\ParserException
-- * @expectedExceptionCode \TheSeer\Autoload\ParserException::ParseError
-- */
- public function testSyntacticallyInvalidClassnameThrowsException() {
- $parser = new \TheSeer\Autoload\Parser;
-+ $this->expectException(ParserException::class);
-+ $this->expectExceptionCode(ParserException::ParseError);
- $parser->parse(new SourceFile((__DIR__.'/_data/parser/invalid1.php')));
- }
-
-- /**
-- * @expectedException \TheSeer\Autoload\ParserException
-- * @expectedExceptionCode \TheSeer\Autoload\ParserException::ParseError
-- */
- public function testInvalidTokenInClassnameThrowsException() {
- $parser = new \TheSeer\Autoload\Parser;
-+ $this->expectException(ParserException::class);
-+ $this->expectExceptionCode(ParserException::ParseError);
- $parser->parse(new SourceFile((__DIR__.'/_data/parser/invalid2.php')));
- }
-
-- /**
-- * @expectedException \TheSeer\Autoload\ParserException
-- * @expectedExceptionCode \TheSeer\Autoload\ParserException::ParseError
-- */
- public function testInvalidTokenInClassnameWithinNamespaceThrowsException() {
- $parser = new \TheSeer\Autoload\Parser;
-+ $this->expectException(ParserException::class);
-+ $this->expectExceptionCode(ParserException::ParseError);
- $parser->parse(new SourceFile((__DIR__.'/_data/parser/invalid3.php')));
- }
-
-@@ -542,6 +523,12 @@ public function testInlineUseOfKeywordTraitGetsIgnored() {
- $this->assertEquals(array('demo'), $rc->getUnits());
- }
-
-+ public function testPHP80Relative() {
-+ $parser = new Parser();
-+ $rc = $parser->parse(new SourceFile((__DIR__.'/_data/parser/relative.php')));
-+ $this->assertEquals(array('foo\\demo'), $rc->getUnits());
-+ }
-+
- }
-
- }
-diff --git a/tests/_data/parser/relative.php b/tests/_data/parser/relative.php
-new file mode 100644
-index 0000000..6e3c185
---- /dev/null
-+++ b/tests/_data/parser/relative.php
-@@ -0,0 +1,4 @@
-+<?php
-+namespace foo;
-+
-+class demo extends bar {}
-diff --git a/tests/classdependencysorterTest.php b/tests/classdependencysorterTest.php
-index da0291c..b110493 100644
---- a/tests/classdependencysorterTest.php
-+++ b/tests/classdependencysorterTest.php
-@@ -37,6 +37,7 @@
-
- namespace TheSeer\Autoload\Tests {
-
-+ use TheSeer\Autoload\ClassDependencySorterException;
- use TheSeer\Autoload\Parser;
- use TheSeer\Autoload\AutoloadRenderer;
- use TheSeer\Autoload\ClassDependencySorter;
-@@ -97,14 +98,12 @@ public function testProcessingDependenciesOverFileBounderies() {
- $this->assertEquals($expectFilesOrder, array_unique(array_values($r)));
- }
-
-- /**
-- * @expectedException \TheSeer\Autoload\ClassDependencySorterException
-- */
- public function testRecusriveDependencyThrowsException() {
- $classes=array('test1' => 'file1');
- $dependency=array('test1' => array('test1'));
-
- $x = new ClassDependencySorter($classes, $dependency);
-+ $this->expectException(ClassDependencySorterException::class);
- $r = $x->process();
-
- }