У Вас есть один вопрос? - Тогда задайте его тут! new!

Тема закрыта
85.55K
.
# ramzes (18.04.2016 / 21:35)
и вообще
Наследование, в некоторой степени, нарушает принципы инкапсуляции.
Код получается более связаным, что может привести к существенным сложностям при его дальнейшем развитии.

Я не говорю, что иметь "базовый класс" в пределах одной задачи - плохо.
Например, BaseController класс, содержащий общую для всех подобных объектов логику - это нормально.
Но вот для более сложных задач, это плохо.

и в частности

А зачем наследовать MySQLi? Нет, серьёзно?
Там же, да же, нельзя MySQLi Result свой сделать, насколько я помню.
.
# ramzes (18.04.2016 / 21:36)
тогда уж регистри
Регистри - это то же самое, что и:

public function __construct()
{
    $this->a new A();
}


Всё то же "получение зависимостей", что не кошерно.
Самый простой и идеологически верный способ использования одного объекта, внутри другого - это просто передать один объект, внутрь другого

Как - это уже другой вопрос.
Можно через конструктор (costructor injection), можно через свойство (property injection), можно через метод-сеттер (method injection).
.
# L!MP (18.04.2016 / 21:45)
Наследование, в некоторой степени, нарушает принципы инкапсуляции.
Код получается более связаным, что может привести к существенным сложностям при его дальнейшем развитии.

Я не говорю, что иметь "
можно.
я наследую и мускули и мускули результ.
собственно для таких методов как count, asArray и т.д. т.е. методов результата мне пришлось сначала наследовать мускули, и из него перенаправлять на свой результ наследующий мускули_результ
.
ramzes
# L!MP (18.04.2016 / 21:53)
Регистри - это то же самое, что и:


public function __construct()
{
$this->a new A();
}


Всё то же "получение зависимостей", что не кошерно.
Самый простой и идеологически верный способ
с чего это регистри то же что и new?
регистри хранит инициализированный обьект, а new даст новый. совершенно разные вещи же
___
сеттеры да, а вот в конструкторе аргументы мне вообще не нравятся в целом
.
# ramzes (18.04.2016 / 22:20)
с чего это регистри то же что и new?
регистри хранит инициализированный обьект, а new даст новый. совершенно разные вещи же
___
сеттеры да, а вот в конструкторе аргументы мне вообще не нравятся в ц
с чего это регистри то же что и new?

Я же написал там почему. Смысл не в том ЧТО этот код делает, а КАК делает.

Это принципиально одинаковый подход - получение зависимостей (dependency lookup), при котором зависимость жестко указана в коде.
.
(\/)____o_O____(\/)
L!MP, можно хитрить
.
(\/)____o_O____(\/)
L!MP, а для работы с бд уже не кошерно через синглтон цеплять базу к классу?
.
Koenig, хитрить не нужно. Нужно чтоб классы-респонденты указывали тип зависимости, а порождающий код им эти зависимости передавал.
.
Koenig
(\/)____o_O____(\/)
L!MP, хитрить , это я про результат

Там же, да же, нельзя MySQLi Result свой сделать, насколько я помню.
.
L!MP, почему жестко?
function __construct()
{

$this->setting = registry::getFromMysqli(); // хоть какую жопу назначай в допустим registry::setFromMysqli(['connect' => new Config('mysqli'), 'cache' => new Cache()]); //бла бла бла
тут скорее вопрос вкуса. я понимаю о чем ты. "общепринятый" подход. но не единственный

}
Всего: 6714