
Sergey
13.03.2017
22:16:54
что-то в таком духе
@Enleur взялся делать твою библиотеку)
будет JWT, GraphQL и JsonAPI для сравнения

Jan
13.03.2017
22:23:15
Ну, в Symfony же есть деление на Component и Bundle. Интерфейс мог бы принадлежать компоненту, а реализация — бандлу. Или не то?

Google

Sergey
13.03.2017
22:25:03
у меня нет ни бандлов ни компонентов)
есть просто нэймспейсы

Jan
13.03.2017
22:25:52
Ну, тогда, как вариант можно было бы пойти по пути Laravel, где есть отдельный неймспейс Contracts.
Напр., YourProjects\Contracts\Notifications\...

Sergey
13.03.2017
22:26:24
полное отсутствие воображения

Jan
13.03.2017
22:26:38
Потому что всё в куче?

Sergey
13.03.2017
22:26:53
потому что деление не по функционалу а по типу
ну то есть все интерфейсы ложим туда, а все реализации туда
так себе

Vladimir
13.03.2017
22:38:13
А где у тебя лежит Notifier?
Вот туда и положить Notification
Он же ему по сути принадлежит, остальные его только могут реализовать, а могут не реализовать

Sergey
13.03.2017
22:40:18
ну так пока и сделал

Google

Sergey
14.03.2017
07:48:43

Sergey
14.03.2017
08:12:23
какую именно?
ну систему управления библиотекой) пример приложеньки
начал туда вчера вкручивать graphql апиху уже

Sergey
14.03.2017
08:12:55
а, тьфу)
? куда смотреть?

Sergey
14.03.2017
08:13:06
пока никуда
собираюсь взять пару дней отгулов на работе что бы запилить
где-то на выходных на гитхаб выложу

Sergey
14.03.2017
08:13:32
основательно так

Sergey
14.03.2017
08:13:50
ну мы сегодня релизим проект
и я 3 недели по выходным херачил) надо и отдохнуть)
для себя покодить

Ринат
14.03.2017
08:14:28
что за проект запилили?

Sergey
14.03.2017
08:20:28
электронная библиотека
книжечки всякие

Pavel
14.03.2017
08:33:08
В симфони можно словить евент $output->write в консоли?

Ivan
14.03.2017
08:37:30
вроде нет
подставь свой $output для $application->run($input, $output); в bin/console

Sergey
14.03.2017
08:51:55

Google

Ivan
14.03.2017
08:54:17
Есть сущности Text и Sentence. Текст содержит предложения. Нормально ли размещать алгоритм разбиения текста(строки) на предложения внутри Text ?

Sergey
14.03.2017
08:55:00

Ivan
14.03.2017
08:55:01
например, чтобы использовать так
new Text('My text content. Second sentence.');

Sergey
14.03.2017
08:55:12
да, нормально

Ivan
14.03.2017
08:55:34
а если мне нужен сторонний сервис для разбиения текста на предложения?

Sergey
14.03.2017
08:55:52
тогда сделай фабрику)

Sergey
14.03.2017
08:56:02

Sergey
14.03.2017
08:56:30

Ivan
14.03.2017
08:56:37
фабрику, и в Text подавать готовые Sentence[] ?

Sergey
14.03.2017
08:56:45
угу

Ivan
14.03.2017
08:56:53
или в конструктор текста инжектить сервис?

Sergey
14.03.2017
08:56:55

Sergey
14.03.2017
08:57:01
лучше тогда сделать статический метод-фабрику
и приватный конструктор
или публичный который принимает готовые предложения
"логика" в конструкторе так себе идея
забыл совсем об этом
ну и еще момент
если твой Text имутабельный то лучше сделать фабрику просто

Google

Sergey
14.03.2017
08:58:05
которая прячет все эти сервисы которые могут понадобиться

Ivan
14.03.2017
08:58:10
мутабельный

Sergey
14.03.2017
08:58:23
а зачем мутабельный? тебе не проще делать новый Text всякий раз?
мутабельный
тогда у тебя будет метод который будет принимать как аргумент сервис что бы разбить выражение

Ivan
14.03.2017
08:59:07
это сущность) она мутабельна

Sergey
14.03.2017
08:59:22
сущность не обязана быть имутабельной)
может но не обязана
особенно когда ее можно сделать value object-ом
или идентификатором сделать sha256 от текста)
короч решай сам) но логика в конструкторе это плохо.

Admin
ERROR: S client not available

Sergey
14.03.2017
09:03:09
а вот логика в методах - это хорошо
а для инкапсуляции - фабрики

Ivan
14.03.2017
09:04:20
контент конкретного текста может измениться, как в этом случае быть?
мне нужно посмотреть какие предложения изменились и изменить Text

Sergey
14.03.2017
09:05:01

Ivan
14.03.2017
09:05:03
если был метод Text::updateContent($content);

Sergey
14.03.2017
09:05:06
или TextRevision
и тогда у тебя будет коллекция ревизий текстов
$texts = new Texsts();
$texts->addRevision($someText, $sentanceSplitter);

Google

Sergey
14.03.2017
09:06:00
вуаля
внутри уже делаешь Text свои как имутабельные ревизиии
и там потом как-то делаешь логику сравнения

Ivan
14.03.2017
09:06:22
Texts - это кто?

Sergey
14.03.2017
09:06:32
внутри по one-to-many содержит ревизии текстов
тебе ж надо знать кто поменялся
ну короч я ж не знаю твоей задачи) просто я двинут на том что бы ничего не удалять

Ivan
14.03.2017
09:07:18
моя задача - перевод текстов
Text - Sentence - Translations

Sergey
14.03.2017
09:07:38
и ты разбиваешь на предложения?

Ivan
14.03.2017
09:07:41
да
для переиспользования переводов
отдельных фрагментов

Sergey
14.03.2017
09:08:19
мм. зря. предложения вырванные из контекста нельзя переиспользовать

Ivan
14.03.2017
09:08:38
это не автоматический перевод
переводчику будет просто предлагаться вариант перевода предложения

Sergey
14.03.2017
09:08:53
типа suggested переводы?
а

Ivan
14.03.2017
09:09:09
если такое уже было или похожее на него

Sergey
14.03.2017
09:09:37

Sergey
14.03.2017
09:09:49
тогда думаю ты обычной разбивкой не ограничишься, тебе ж нужно искать похожие предложения

Ivan
14.03.2017
09:09:54
@fes0r почему ты так считаешь?