Почему невозможно скрыть конструктор в дочернем классе?
Я получаю следующее исключение:
Неустранимая ошибка: уровень доступа к CIS \ Logger \ WPLogger :: __ construct () должен быть открытым (как в классе Katzgrau \ KLogger \ Logger)) в /builds/r2o/website/wp-content/mu-plugins/toolsets/lib/cis-logger/src/WPLogger.php в строке 12
код суперкласса (из внешней библиотеки):
public function __construct($logDirectory, $logLevelThreshold = LogLevel::DEBUG, array $options = array()) { // ...
}
Код WPLogger.php (подкласс):
private function __construct(string $logDirectory, string $logLevelThreshold = LogLevel::DEBUG, array $options = array()) {
parent::__construct($logDirectory, $logLevelThreshold, $options);
// ... some actions
}
}
public static function getInstance(string $logFileRelative = self::DEFAULT_LOG_NAME, string $logLevelThreshold = LogLevel::DEBUG, array $options = array()) {
// ...
}
Я не хочу, чтобы этот специальный подкласс создавался с new
.Я хочу, чтобы он создавался статически с getInstance()
вместо этого по некоторым причинам.Как мне этого добиться?