В настоящее время я пытаюсь создать класс из строки с уже имеющимся пространством имен.
namespace Project\Manager;
use Project\Exemple\ExempleView;
class Manager{
private $db;
function __construct($db){
$this->db = $db;
}
public function displayView($module = null, $action = null){
if($module != null){
$sql = '
SELECT *
FROM urls
WHERE urls_module = "'.$module.'"
'.($action != null ? 'AND urls_action = "'.$action.'"' : '').'
ORDER BY urls_id DESC
LIMIT 1
';
$url = $this->db->read($sql);
if(!isset($url['error'])){
$class = $url['urls_class'];
// Edit 1
require_once $class.'.php';
$action = $url['urls_action'];
$view = new $class();
$view->$action();
}
}
}
}
При этом я получаю следующую ошибку:
Fatal error: Uncaught Error: Class 'ExempleView' not found in C:\wamp64\www\project\src\core\manager\manager.class.php on line 27
I Я пытался передать пространство имен в мою переменную (Project \ Exemple \ ExempleView), но он все еще не работал. Мой класс правильно загружен в мой проект, и если я пытаюсь вызвать его напрямую (новый ExempleView ()), он работает. Есть ли способ создать мой класс, используя строку таким образом?
- Правка 1 Я попытался добавить require_once моего класса, но он все еще не работает
Warning: require_once(ExempleView.php): failed to open stream: No such file or directory in C:\wamp64\www\project\src\core\manager\manager.class.php on line 27