Версия: 6.x
burger close
Правило отсутствия магических массивов (ПОММ)

Для большей стройности кода конструкторы многих классов ReadyScript принимают в качестве аргумента ассоциативный массив для установки начальных параметров. Это позволяет опытным пользователям быстро и кратко писать код, но заставляет начинающих разработчиков постоянно открывать документацию, чтобы узнать какие ключи массива ожидаются в конкретном классе.

Чтобы устранить этот недостаток, в ReadyScript принято следующее правило: любой класс, принимающий ассоциативный массив в конструкторе для инициализации, должен производить инициализацию, путем вызова методов, соответствующих ключу массива с префиксом set. То есть просмотрев методы, начинающиеся с set в классе сразу можно понять, как кратко инициализировать объект через конструктор и посмотрев подпись PHPDoc к методу в современных IDE сразу можно узнать данные какого типа ожидаются в значениях массива.

$singlePhoto = new Preset\SinglePhoto(array(
'linkPresetId' => 0,
'linkForeignField' => 'image',
'title' => 'Изображение'
));
//будет равносильно вызову:
$singlePhoto = new Preset\SinglePhoto();
$singlePhoto->setLinkPresetId(0);
$singlePhoto->setLinkForeignField (‘image’);
$singlePhoto->setTitle(‘Изображение’);
magic_arrays.png
Подсветка возможных ключей массива в IDE