Restore Flight::path() autoloading after the 3.19 autoload rework.

PR 709 dropped the Composer files entry for flight/autoload.php and that file returned early when vendor/autoload.php existed, so Loader::autoload() never registered. path() still added directories; namespaced app classes never loaded. Upgrades must not break that.
pull/725/head
Ambrose Casanova 6 days ago
parent 71de031cef
commit 2880142083

@ -27,6 +27,9 @@
"ext-json": "*"
},
"autoload": {
"files": [
"flight/autoload.php"
],
"classmap": [
"flight/Flight.php"
],

@ -8,7 +8,7 @@ require_once __DIR__ . '/Flight.php';
require_once __DIR__ . '/core/Loader.php';
if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
return require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../vendor/autoload.php';
}
Loader::autoload(true, dirname(__DIR__));
Loader::autoload(true, [dirname(__DIR__)]);

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace tests;
use Flight;
use flight\Engine;
use tests\classes\User;
use PHPUnit\Framework\TestCase;
@ -44,4 +45,17 @@ class AutoloadTest extends TestCase
self::assertNull($test);
}
// Flight::path() must load namespaced classes that Composer PSR-4 does not map
public function testPathAutoloadsNamespacedClassOutsideComposerPsr4(): void
{
$class = \app\middleware\Something::class;
self::assertFalse(class_exists($class));
Flight::path(__DIR__ . '/path_autoload_fixtures');
self::assertTrue(class_exists($class));
self::assertTrue(class_exists(Engine::class));
}
}

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace app\middleware;
class Something
{
}
Loading…
Cancel
Save