Open vaneves opened 11 years ago
Pensei na criação de um projeto Skeleton para guardar a estrutura da aplicação e o Trilado ficar apenas o diretório core
.
O projeto Skeleton coteria a seguinte arquitetura:
.htaccess
app/
config.php
routes.php
controllers/
...
wwwroot/
.htaccess
index.php
vendors/
No arquivo index.php
ficaria mais ou menos assim:
$root = str_replace('\\', '/', dirname(dirname(dirname(__FILE__))));
if(substr($root, -1) != '/') $root = $root .'/';
require_once $root . 'vendors/trilado/libs/Bootstrap.php';
new Bootstrap($root);
Como deu para perceber, o diretório core/
não existirá mais, sendo vendors/
com o diretório trilado dentro.
O trilado será apenas o conteúdo do diretório core/
. Ai é necessário readequar as importações.
Nesse formato fica legal, como um vendor, dai poderíamos disponibilisar via composer, nem sei como se faz isso rs, ou ainda usando o git submodules...
A primeira modificação não causará efeito negativo, mas muitos positivos. Seria a criação do arquivo core/bootstrap.php
, na qual será composto pelo conteúdo atual do app/wwwroot/index.php
. Só que ao invés de dirname(dirname(dirname(__FILE__)))
utilizaremos dirname(dirname(__FILE__))
.
No app/wwwroot/index.php
ficará apenas:
require_once '../../core/bootstrap.php';
Isso inclusive resolve um problema que no NGINX, quando aponto do domínio direito para o app/wwwroot
.
Ultimamente tive que atualizar algumas aplicações que utilizam o Trilado. Foi uma tarefa tensa, dava conflito em alguns arquivos e tal sem ao menos eu ter alterado eles.
Para facilitar a atualização do trilado seria interessante ele ter uma arquitetura que permite substituir tudo sem comprometer a aplicação. Algo como criar um esqueleto. Já havia havíamos conversado sobre isso, né @diegopso.
Então, pensei em uma solução sem muita alteração. A pasta
app
contem apenas o arquivoẁwwroot/index.php
com lógica do trilado. O resto são diretórios, config e routes, que apenas utilizam classes dele.A ideia é retirar essa programação do arquivo
index.php
e colocar dentro docore
. Ainda não pensei como, mas deixo aberto para discussão.