Como o carregamento automático do PSR-4 funciona no compositor para bibliotecas personalizadas?
Eu uso a seguinte estrutura de diretórios com base no meu entendimento de como os espaços para nome no PHP funcionam:
project_root
app/
| lib/
| | MyCompany/
| | | Utility/
| | | | Logger.php
| | | Core/
| | | | User.php
vendor/
composer/
symfony/
guzzle/
bootstrap.php
composer.json
De acordo com a especificação PSR-4, um nome de classe totalmente qualificado tem o seguinte formato:
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
Questão 1:
Na minha estrutura de diretórios acima, a suposição abaixo está correta?
NamespaceName = MyCompanySubNamespaceNames = Utilitário | TestemunhoClassName = Logger | Do utilizadorQuestão 2:
Se meu arquivo bootstrap.php contiver o seguinte:
<?php
require 'vendor/autoload.php';
Como euconfigurar o 'carregamento automático' seção do compositer.json para carregar automaticamente as classes no diretório MyCompany? De tal forma que eu seria capaz de criar uma instância do Logger no bootstrap.php