Estrutura de Diretórios para Aplicação Complexa
Boa Tarde!
Estou iniciando uma evolução de uma aplicação que está em uso por algumas empresas, e me deparei com uma questão que não tinha enfrentado anteriormente.
Primeiramente vou explicar o novo projeto (Estruturalmente diferente do atual) para que alguém possa me auxiliar da melhor maneira possível.
O Projeto em base é uma aplicação para gerenciamento de um setor empresarial.
A Ideia primária é disponibilizar para um maior número de empresas o sistema online, tendo isto em mente, criei uma arquitetura básica sendo totalmente customizado pelo usuário.
Ele vai contar com módulos (dependentes e independentes) ou seja, Vai exigir um mínimo de módulo como (Usuários e Clientes) e disponibilizar módulos adicionais como:
- Comunicação (Chat Interno, Chat de Atendimento, BOT's... etc)
- Estoque
- Compras
- Financeiro
- Centro de Custos
Estou desenvolvendo baseado em um framework que de acordo com a preferência do usuário, ative ou desative módulos na aplicação;
O Principal problema que me atinge é quanto a versões, pois gostaria imensamente total controle sobre versões, tanto do Framework quanto dos módulos.
Exemplo: O usuário pode utilizar o módulo Cliente na versão 1, e o módulo compras, na versão 2, Todo o gerenciamento de informações, base de dados de versões diferentes, etc, meu framework ira realizar. Entretanto estou meio perdido quanto sua disposição em pastas, no servidor.
Imaginei algo como:
Configuração para Servidor
Pasta Raíz {
- Aplicação
- Framework (Aplicação PAI, Programa que gerencia módulos, gera views, etc)
- Dependencias (Dependencias globais do framework)
- $versão (v1, v2, v3)
- Dependencias (Dependencia específica da versão)
- Templates
- Configurações
$framework
- Módulos
- $Módulo
- Dependencias (Dependencias globais do módulo)
- $versão (v1, v2, v3)
- Dependencias (Dependencia específica do módulo)
- Templates
$módulo
- API (Ajax) (Tráfego de informações entre DB <-> Módulo)
- $módulo
- $versão
- Consulta
- Edição
- Adição
- Exclusão
- Template (Todo arquivo de saída padrão, caveçalho, rodapé, img, css, js)
- $versão
- Header
- Menu
- Footer
- Dependencias
- CSS
- JS
- IMG
- Connect (Informações de Conexão)
- Servidor (Conecta ao meu DB, importando configurações, módulos, versões, etc)
$servidor.info
- Cliente (Conecta do DB do Cliente)
-$cliente.info
controlador.php
}
Acima, segue modelo que consegui montar tendo como base o princípio de versões, cada "$versão", exigirá subpastas específicas com suas dependências.
Gostaria de saber de profissionais experientes mais sobre este assunto.
Antecipando todas as sugestões serão bem vindas e desde já, Obrigado!
Discussão (3)
Carregando comentários...