Hola
masterpuppet un gusto saludarle, gracias por responder, no se si lo he echo mal, pero aun persiste el mismo error.
El error y los warning que se producen:
Código:
Warning: include_once(../library/config.php): failed to open stream: No such file or directory in /var/www/test/config/config.php on line 3
Warning: include_once(): Failed opening '../library/config.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/test/config/config.php on line 3
Warning: include(../config/config.php): failed to open stream: No such file or directory in /var/www/test/library/View.php on line 8
Warning: include(): Failed opening '../config/config.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/test/library/View.php on line 8
Fatal error: Call to a member function get() on a non-object in /var/www/test/library/View.php on line 15
Lo que hice fue esto:
Archivo config.php -> config/config.php:
Código PHP:
Ver original<?php
// También use la ruta absoluta y tampoco funciono.
include_once('../library/config.php');
$config = null;
$config = new config();
$RouteAbsolute = null;
$RouteAbsolute = 'http://' . $_SERVER['HTTP_HOST'] . '/test/public/';
$config->set('layoutPath', 'layouts/');
$config->set('viewsPath', 'public/html/');
$config->set('staticRoute', $RouteAbsolute);
$config->set('controllersFolder', 'controllers/');
$config->set('modelsFolder', 'models/');
$config->set('viewsFolder', 'views/');
$config->set('dbhost', 'myserver');
$config->set('dbname', 'mydb');
$config->set('dbuser', 'myuser');
$config->set('dbpass', 'mypass');
return $config;
?>
Clase view.php -> library/view.php:
Nota: solo coloco un método para que quede mas corto el código de la clase view.
Código PHP:
Ver original<?php
class View
{
private $config;
public function __construct()
{
$this->config = include '../config/config.php';
}
// Mostrar la Vista
public function show
($name, $vars = array()) {
$config = $this->config;
$path = $config->get('viewsFolder') . $name;
{
echo ("la vista " . $path . " no existe.");
return false;
}
{
foreach ($vars as $key => $value) {
$$key = $value;
}
}
include($path);
}
}
?>
La verdad es que antes estaba usando singleton para el trabajo de lectura del archivo de configuración y la instancia de la clase a la base de datos, pero leí en el foro que esto no era recomendado, así que lo que hice fue borrarle el singleton y tratar de hacerlo normal, en el mismo tema leí acerca de Registry pero la verdad nunca lo he usado, esta es la primera vez que trato de hacer un proyecto relativamente grande, usan POO y MVC.
Saludos.