Planejamento Técnico
Planejamento sugerido por @diegoholiveira e que deve ser o caminho que seguiremos. Abriremos discussão em breve sobre o assunto.
- PSR-1 e PSR-2 como coding style;
- PSR-4 para organização do código;
Pensando nisso, iriamos migrar todas as classes e interfaces para uma pasta src
na raiz do projeto. Todos os arquivos públicos iriam para a pasta public
e apenas essa pasta deveria ser visível no servidor web. Todos os require
e include
seriam excluídos e apenas o autoload do composer seria usado pra carregar as classes e outras dependências.
Essa primeira parte iria preparar nosso código para as mudanças futuras.
Remover todo o html / css / javascript que estiver na pasta src
. os assets (css/javascript), inicialmente vão pra pasta public
. O HTML deve ser extraído para uma pasta chamada templates
e renderizado usando o Twig.
Isso iria começar a separar a camada de template do nosso código, assim mudanças de UI não precisam ser feitas no código e nosso código para a ficar mais limpo, para que as próximas mudanças sejam mais fáceis.
Inicialmente começamos implementando apenas o roteamento de urls pra dentro do Symfony, sem nos preocupar em usar todo o poderio do Symfony, como DI e outras coisas; Com o tempo vamos refatorando o código pra usar todo o poderio do Symfony.
Como Symfony não define um ORM padrão, poderiamos adotar qualquer bom ORM disponível. Eu recomendo o Doctrine, é um projeto muito maduro e que funciona muito bem.
Nessa fase poderiamos adotar react / vue ou outro framework pra front end e começariamos a transformar o código php pra servir JSON ao invés de HTML;