У меня есть следующий класс:Глобальных переменный с частным атрибутом
class validationHandler{
private $dataType; //set via constructor ...
private $validation = null;
private function requireValidation(){
if($this->validation == null){
$this->validation = loadDataFromJSONfile($this->dataType);
}
}
public function validate($data){
$this->requireValidation();
//validate... the rules are in the $validation-variable
}
}
Когда объект должен проверить некоторые данные, это делает новую валидацию-объект и вызовов проверке().
Впервые что-то нужно проверить, данные загружаются из json-файла.
Но: Иногда у меня есть несколько объектов, которым нужен тот же файл проверки. И этот код загружает файл для каждого объекта.
Вопрос: Есть ли способ установить $ validation global, чтобы каждый объект обращался к одной и той же переменной, но без потери частной собственности?
(Обратите внимание, что у меня есть разные файлы проверки и различные объекты. Объекты сообщают validationHanlder в __construct(), которые он набирает, и какой файл проверки должен быть загружен. Поэтому мне нужно, чтобы $ validation была массив. (не писать в коде, так что это более читаемым)
Извлечение проверки в отдельный класс. Вводят экземпляр этого класса во все объекты, которые нуждаются в этой проверке. – Gordon