and let?s assume the following content of Bar.php:
// Bar.phpnamespaceOtherDir;useSomeDir\Foo;// This now conflicts the class OtherDir\Foo
If both files OtherDir/Foo.php and SomeDir/Foo.php are loaded in the
same runtime, you will see a PHP error such as the following:
PHP Fatal error: Cannot use SomeDir\Foo as Foo because the name is already in use in OtherDir/Foo.php
However, as OtherDir/Foo.php does not necessarily have to be loaded and the
error is only triggered if it is loaded before OtherDir/Bar.php, this problem
might go unnoticed for a while. In order to prevent this error from surfacing,
you must import the namespace with a different alias:
// Bar.phpnamespaceOtherDir;useSomeDir\FooasSomeDirFoo;// There is no conflict anymore.
Loading history...
17
18
/**
19
* @author nystudio107
20
* @package Seomatic
21
* @since 3.5.21
22
*/
23
class AssetHelper
24
{
25
/**
26
* Return asset volume sources that can be accessed by the current user
27
*
28
* @return array
29
*/
30
public static function getAssetInputSources(): array
31
{
32
$sources = [];
33
foreach (Craft::$app->getElementIndexes()->getSources(Asset::class) as $source) {
34
if (isset($source['key'])) {
35
$sources[] = $source['key'];
36
}
37
}
38
39
// Now enforce the showUnpermittedVolumes setting
40
$assetsService = Craft::$app->getAssets();
41
$userService = Craft::$app->getUser();
42
return ArrayHelper::where($sources, function(string $source) use ($assetsService, $userService) {
43
// If it's not a volume folder, let it through
44
if (strpos($source, 'folder:') !== 0) {
45
return true;
46
}
47
// Only show it if they have permission to view it
Let?s assume that you have a directory layout like this:
and let?s assume the following content of
Bar.php
:If both files
OtherDir/Foo.php
andSomeDir/Foo.php
are loaded in the same runtime, you will see a PHP error such as the following:PHP Fatal error: Cannot use SomeDir\Foo as Foo because the name is already in use in OtherDir/Foo.php
However, as
OtherDir/Foo.php
does not necessarily have to be loaded and the error is only triggered if it is loaded beforeOtherDir/Bar.php
, this problem might go unnoticed for a while. In order to prevent this error from surfacing, you must import the namespace with a different alias: