Как назвать метод?

Redjik

Джедай-мастер
На каждый use case ты будешь добавлять новый метод, код будет разрастаться вертикально, в конструкторе будет много зависимостей, которые для конкретного use case не нужны. Это нарушение SRP.
Мне кажется, лучше добавить в PhpStorm шаблон для class UseCase :)
а потом visitor'ом по UseCase'ам, если их несколько, пробегаться? ну норм
 

whirlwind

TDD infected, paranoid
А в первом посте статик изначально был? А я чет и не заметил. Значит мой первый ответ в лужу. Какое мокирование на статику.
 

Вурдалак

Продвинутый новичок
Меня это бесит, когда нужно посчитать суммы по какому-то полю, или количество по параметру. Вот и думаешь - грузить ради этого элементы по связи, или запрос к репозиторий.
Мне кажется, ни то, ни другое. :) Всякие суммы, различные таблицы для статистики — это всё проекции сущностей, а Repository работает не с проекциями, а с конкретными сущностями.
 

Vano

Новичок
Так значит Yii для сложного проэкта не подходит? Я допишу сайт, что мне учить? Zend framework?
 

WMix

герр M:)ller
Партнер клуба
Есть товар и категория
У товара должны быть методы attachCategory, detachCategory
У категории addProduct, removeProduct
И как их подружить, чтобы состояние изменялось в обеих моделях, когда меняют одну?
почему никто не напомнил
PHP:
$this->getEventManager()->trigger(
  'товара.attachCategory',
  array('product_id' => $this->id, 'category_id' => $category_id)
);
 

Redjik

Джедай-мастер
WMix, я и об этом думал, но остаются публичные методы, думаю когда-нибудь в php добавят дружестенные методы как в C++, правда не знаю хочу ли я этого
 

WMix

герр M:)ller
Партнер клуба
оно вроде и сейчас ничем не хуже плюсов (а гдето даже лучше), вопрос только сколько в памяти хочешь хранить, не нравятся публичные методы, ну выноси в отдельный класс. можно и одним методом обойтись на самом деле типа __set()
 
Последнее редактирование:

whirlwind

TDD infected, paranoid
В смысле накуя? Ты постановку задачи-то читал? Посолить приватным полем. Но я отметил, что более выгодным решением здесь будет типа медиатор, который в терминах DDD есть сводный корень - сервисный слой в контексте задачи, а не модели.
 

Вурдалак

Продвинутый новичок
в терминах DDD есть сводный корень - сервисный слой в контексте задачи, а не модели.
Aggregate root — это сущность. Это очень принципиальный момент. И откуда ты перевод такой взял — «сводный корень»? А singleton ты «одиночкой» называешь? :)
 

whirlwind

TDD infected, paranoid
А в чем проблема с этим переводом? Некоторые вообще пишут "переиспользование". Но я ж не плююсь, терплю как-то.

Aggregate root это сущность производная, над моделью, не самостоятельная. По большому счету мне плевать на терминологию. Использую как проще объяснить. Любителям анемичной модели, коя у нас классика, проще объяснять через сервисный слой.
 

Вурдалак

Продвинутый новичок
А в чем проблема с этим переводом?
Примерна та же, если бы люди говорили «преобразователь данных», подразумевая DataMapper. Это непопулярно, не сразу может быть понятно о чём идёт речь, единая терминология важна. Я раньше такого перевода не слышал (вернее, слышал, но от тебя же).

Использую как проще объяснить.
Я боюсь, у тебя это получается не очень успешно. Ты можешь показать пример кода? Я не очень понимаю при чем тут aggregate root.
 

whirlwind

TDD infected, paranoid
Друг, у тебя пальцы сломаны и ты загуглить не в состоянии? Про сводные корни даже в википедии написано.
 

fixxxer

К.О.
Партнер клуба
whirlwind
PHP:
$user->pepperAndSaltByTheSecretKeyFor('another secret value');
В смысле, типа того?
PHP:
SaltedTextValueObject $textWithSalt = $user->saltAndPepperPlainTextPassword($password); 
StringValueObject $passwordHash = $hasher->getSaltedHashFor($textWithSalt);
$user->setPassword($passwordHash)?
А с aggregate roots я тоже не понял, чем это поможет, откуда там возьмется hasher?
 
Сверху