Бочонок
http://frontender.info
Реализации read-only свойств в классах.
Приятного времени суток.
Столкнулся с задачей реализации read-only свойств в классах.
Сделал просто и понятно:
Но, когда мой код рецензировал некий программист, работающий в Яндекс (за что ему огромное спасибо), он написал:
А как тогда защитить те свойства, которые не нужно позволять читать? Вот таким вот извращенным методом?
В общем, я в задумчивости. Подскажите, пожалуйста, как лучше сделать?
Может быть я что то вообще не то делаю?
С уважением. Боченок.
Приятного времени суток.
Столкнулся с задачей реализации read-only свойств в классах.
Сделал просто и понятно:
PHP:
class testClass{
protected $albumCollection = 'Я могу считать это значение, но не могу записать.';
protected $photoCollection = 'Read only';
public function getAlbumCollection(){
return $this->albumCollection;
}
public function getPhotoCollection(){
return $this->photoCollection;
}
}
Ну ... в общем то это не большая проблема. Написал:Неясно зачем столько методов с префиксом «get», вместо этого можно использовать магические методы, если почему-то не хочется давать прямой доступ к свойствам.
PHP:
class testClass{
protected $albumCollection = 'Я могу считать это значение, но не могу записать.';
protected $photoCollection = 'Read only';
public function __get($name){
return $this->$name;
}
}
PHP:
class testClass{
private $hidden = array('photoCollection');
protected $albumCollection = 'Я могу считать это значение, но не могу записать.';
protected $photoCollection = 'Read only';
public function __get($name){
if (in_array($name,$hidden)) throw new Exception("А нету!", E_ERROR);
return $this->$name;
}
}
Может быть я что то вообще не то делаю?
С уважением. Боченок.
Спасибо ему за то, что он работает в Яндексе...