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...
6
use IproSoftwareApi\Contracts\AccessTokenCacher;
7
8
class FileCacher implements AccessTokenCacher
9
{
10
/**
11
* @var string
12
*/
13
protected $filePath;
14
15
/**
16
* FileCacher constructor.
17
*
18
* @param string $filePath
19
*/
20
2
public function __construct(string $filePath)
21
{
22
2
$this->filePath = $filePath;
23
}
24
25
/**
26
* Store an item in the cache.
27
*
28
* @param mixed $accessToken
29
* @param int $ttl - time in seconds
30
*
31
* @return bool
32
* @static
33
*/
34
2
public function put(AccessToken $accessToken, int $ttl = 0)
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: