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...
18
use MessagePack\PackOptions;
19
use MessagePack\UnpackOptions;
20
use Tarantool\Client\Packer\Extension\DecimalExtension;
21
use Tarantool\Client\Packer\Packer as ClientPacker;
22
23
final class PackerFactory
24
{
25
5
public static function create() : ClientPacker
26
{
27
5
if (\class_exists(BufferUnpacker::class)) {
28
4
if (!\extension_loaded('decimal')) {
29
return new PurePacker();
30
}
31
32
4
$extensions = [new DecimalExtension()];
33
34
4
return new PurePacker(
35
4
new Packer(PackOptions::FORCE_STR, $extensions),
36
4
new BufferUnpacker('', UnpackOptions::BIGINT_AS_DEC, $extensions)
37
);
38
}
39
40
1
if (\extension_loaded('msgpack')) {
41
1
return new PeclPacker();
42
}
43
44
throw new \Error('None of the supported msgpack packages were found. To install one, run "composer require rybakit/msgpack".');
Let?s assume that you have a directory layout like this:
. |-- OtherDir | |-- Bar.php | `-- Foo.php `-- SomeDir `-- Foo.phpand let?s assume the following content of
Bar.php:If both files
OtherDir/Foo.phpandSomeDir/Foo.phpare 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.phpHowever, as
OtherDir/Foo.phpdoes 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: