Мне нужна ваша помощь с пространствами имен.
У меня есть такая структура:
/main
/app
/files
/file.php
/lib
/Exceptions
/MyException.php
config.php
MyException. php
namespace System;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
/**
* Define a custom exception class
*/
class MyException extends \Exception{
// Redefine the exception so message isn't optional
public function __construct($message, $code = 0, Exception $previous = null,$needLog=false) {
$message = 'My error: '.$message;
if($needLog) {
self::logError($message,$code);
}
parent::__construct($message, $code, $previous);
}
// custom string representation of object
public function __toString() {
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
}
static function logError($message,$code) {
$log = new Logger('System');
$log->pushHandler(new StreamHandler('../../log/SystemLog.log',Logger::ERROR));
$log->error('Cod.'.$code.' - '.$message);
}
public static function launch($message, $code = 0, Exception $previous = null,$needLog=false) {
new MyException($message,$code,$previous,$needLog);
}
}
index. php
use Exceptions\System;
MyException::launch('Unexpected answer',1,null,true);
config. php
include_once('/lib/Exceptions/MyException.php');
И ошибка:
(!) Неустранимая ошибка: Класс 'Exceptions \ System \ SystemException' не найден в C: \ wamp64 \ www\myRootFolder \ main \ app \ files \ file. php в строке 109
Возможно, я просто неправильно понимаю, как работают пространства имен, но мне бы очень хотелось чтобы узнать, как все работает здесь, чтобы я мог улучшить свои навыки.
Спасибо.