Estava lendo a documentação do composer, e não consegui compreender esse seguinte parágrafo
Namespace prefixes must end in \ to avoid conflicts between similar prefixes. For example Foo would match classes in the FooBar namespace so the trailing backslashes solve the problem: Foo\ and FooBar\ are distinct. https://getcomposer.org/doc/04-schema.md#autoload:~:text=Namespace%20prefixes%20must,are%20distinct.
Até tentem montar um exemplo mas não consegui replicar, poderiam me auxiliar?
<?php
namespace Foo;
class Bar
{
public function teste()
{
return 'Foo\\Bar!' . PHP_EOL;
}
}
namespace FooBar;
class Bar
{
public function teste()
{
return 'FooBar\\Baz!' . PHP_EOL;
}
}
$bar = new \Foo\Bar();
echo $bar->teste();
$bar = new \FooBar\Bar();
echo $bar->teste();
Acho que por fazer o import da classe ele acaba resolvendo o possível conflito.