File tree Expand file tree Collapse file tree 2 files changed +21
-10
lines changed Expand file tree Collapse file tree 2 files changed +21
-10
lines changed Original file line number Diff line number Diff line change 44
55namespace Soap \Wsdl \Uri ;
66
7- use League \Uri \BaseUri ;
87use League \Uri \Modifier ;
8+ use League \Uri \Uri ;
9+ use function Psl \Str \starts_with ;
910
1011final class IncludePathBuilder
1112{
1213 public static function build (string $ relativePath , string $ fromFile ): string
1314 {
14- return Modifier::from (BaseUri::from ($ fromFile )->resolve ($ relativePath ))
15+ $ baseUri = Uri::new (starts_with ($ fromFile , '/ ' ) ? 'file:// ' .$ fromFile : $ fromFile );
16+ $ modifier = Modifier::wrap ($ baseUri ->resolve ($ relativePath ))
1517 ->removeDotSegments ()
16- ->removeEmptySegments ()
17- ->getUri ()
18- ->__toString ()
19- ;
18+ ->removeEmptySegments ();
19+
20+ /**
21+ * @var Uri $relativeUri
22+ * @psalm-suppress UndefinedClass PHP's URI classes are only available from PHP 8.5
23+ */
24+ $ relativeUri = $ modifier ->unwrap ();
25+
26+ if ($ relativeUri ->getScheme () === 'file ' ) {
27+ return $ relativeUri ->getPath ();
28+ }
29+
30+ return $ relativeUri ->toString ();
2031 }
2132}
Original file line number Diff line number Diff line change @@ -20,13 +20,13 @@ public static function provideBuildPaths()
2020 {
2121 yield 'same-dir-file ' => [
2222 'relativePath ' => 'otherfile.xml ' ,
23- 'fromFile ' => 'somedir/somefile.xml ' ,
24- 'expected ' => 'somedir/otherfile.xml ' ,
23+ 'fromFile ' => '/ somedir/somefile.xml ' ,
24+ 'expected ' => '/ somedir/otherfile.xml ' ,
2525 ];
2626 yield 'child-dir-file ' => [
2727 'relativePath ' => '../otherfile.xml ' ,
28- 'fromFile ' => 'somedir/child/somefile.xml ' ,
29- 'expected ' => 'somedir/otherfile.xml ' ,
28+ 'fromFile ' => '/ somedir/child/somefile.xml ' ,
29+ 'expected ' => '/ somedir/otherfile.xml ' ,
3030 ];
3131 yield 'http-file ' => [
3232 'relativePath ' => 'otherfile.xml ' ,
You can’t perform that action at this time.
0 commit comments