Должен ли я поместить parent :: __ construct ($ config) в мой источник данных CakePHP? - PullRequest
0 голосов
/ 18 января 2011

Есть ли веская причина для включения

parent::__construct($config)

в конструкцию источника данных CakePHP, который я разрабатываю?Я вижу, что он используется в некоторых источниках данных, найденных в https://github.com/cakephp/datasources/blob/master/models/datasources/amazon_associates_source.php, но не уверен почему.Я мог бы просто сделать

private $_config = array();
function construct($config){
    $this->_config = $config;
}

и получить доступ к своему $ config таким же образом.

1 Ответ

2 голосов
/ 18 января 2011

Если вы посмотрите на класс DataSource в CakePHP, это конструктор, вызывающий метод setConfig.Вот источник метода setConfig:

function setConfig($config = array()) {
    $this->config = array_merge($this->_baseConfig, $this->config, $config);
}

Вы можете видеть, что он объединит несколько конфигураций.Таким образом, вы можете определить атрибуты $ config в вашем классе, и он будет сливаться с тем, что пользователь дает конструктору.Конечно, вы можете сделать это в конструкторе:

function __construct($config){
    $this->setConfig($config);
}

Но вызов родительского конструктора гарантирует, что ваш класс будет следовать любым изменениям, внесенным CakePHP в класс DataSource.

...