php - É adequado migrar recursos comuns a mais de um projeto para um pacote independente? - Stack Overflow em Português
Construi dois pacotes em PHP, cada um destes realizam funções bem distintas, porém, ambos implementam praticamente as mesmas interfaces e classes abstratas.
Por conta disso criei um terceiro pacote contendo somente as interfaces e classes abstratas utilizas, ou seja, este pacote contem o esqueleto básico compartilhado pelas outras duas bibliotecas. As interfaces ficam abaixo do do diretório Contratos, já os diretórios Auxiliares e Conectores possuem classes abstratas:
Já um dos pacotes possui a estrutura:
Porém, acho que está organização não parece muito satisfatória. Alguma ideia de como melhorar isso, ou até mesmo sugestões de organização?
Obs: O carregamento via autoload está sendo feito pelo composer
A ideia é separar em um pacote as classes abstratas, interfaces e traits padrões para 2 pacotes ou mais...
editada 22/11/16 às 18:40
Acho que pode ser util sim, ainda mais se irá reutilizar em mais de um projeto. Eu mesmo fiz isso com um projeto que eu tinha, isso porque se tiver que fazer o update não afeta o resto do projeto. – Guilherme Nascimento 22/11/16 às 18:44
Entendi. Então tudo indica ser uma boa estratégia. E na sua opinião, essa estrutura de arquivos poderia ser diferente? Algo nela me incomoda. – Fábio Jânio 22/11/16 às 19:03
Sim, mas não identifiquei nada sugerindo local e nome de classes abstratas, interfaces etc – Fábio Jânio 22/11/16 às 19:12
Eu pessoalmente nunca dividiria por pastas pacoteprincipal\bibliotecas\Cpu, sempre faço Vendor\Categoria\Cpu, e tudo vai dentro da pasta vendor controlado pelo composer (seria legal estudar ele primeiro) e se uma classe repete o nome e ainda usa o mesmo namespace é porque já esta errado. Não é errado se o namespace for diferente. – Guilherme Nascimento 22/11/16 às 19:40
Neste caso faz todo sentido, fez muito bem. só um detalhe, notei que o Wmi depende do Core e já esta no composer.json, ficou ótimo assim. – Guilherme Nascimento 23/11/16 às 13:41