A la fecha hay 3 estándares definidos por el
FIG,
PSR-0,
PSR-1 y
PSR-2, mínimo deberías apegarte al primero para no tener que preocuparte por los include al utilizar una clase, te dejo una referencia
https://github.com/php-fig/fig-stand...epted/PSR-0.md.
Con respecto al manejo de dependencias, te sugiero un DiC muy sencillo,
Pimple, un ejemplo de como podría quedar en tu caso:
Código PHP:
Ver original//definicion
$container = new Pimple();
$container['modelsFolder'] = 'models/';
$container['config'] = $container->share(function ($c) {
$config = new Config();
$config->set('controllersFolder', 'controllers/');//parametro hardcodeado
$config->set('modelsFolder', $c['modelsFolder']);//parametro desde el container
$config->set('viewsFolder', 'views/');
return $config;
});
$container['view'] = function($c){
return new View($c['config']);
}
//uso
$config = $container['config'];//retorna Config object, al ser shared retorna siempre la misma instancia
$view = $container['view'];//retorna un nuevo View object(en cada llamada) con la configuración inyectada vía constructor
Ten en cuenta que tiene un catch, Pimple es para PHP 5.3+, de todas formas puedes crear un Container de forma muy sencilla.
Cualquier cosa nos comentas.
Saludos.