
Sergey
08.12.2016
21:26:51
давай сначала про контейнер
зачем он тебе?
или почему у тебя его нет

Jan
08.12.2016
21:31:17
Нет потому, что «он не нужен». Я не один в проекте) а нужен он для того, чтобы не плодить синглтоны и «уметь» автоматически резолвить необходимые зависимости

Google

Sergey
08.12.2016
21:32:20
> а нужен он для того, чтобы не плодить синглтоны
то есть есть всего два пути - контейнер зависимостей и сингелтоны?)
> «уметь» автоматически резолвить необходимые зависимости
магия?)

Aleksandr
08.12.2016
21:32:34

Sergey
08.12.2016
21:32:50
А много это сколько?

Jan
08.12.2016
21:33:25
Есть общее «ядро» проектов, написанное не мной)

Aleksandr
08.12.2016
21:33:54
есть модули. есть Приложение, использующее модули. Это разные понятия. Контейнер в принципе для приложения нужен. Но и каждый модуль может иметь свой контейнер (вроде даже psr-fig пилят интерфейсы под это дело)

Jan
08.12.2016
21:33:59
Ядро содержит минимум функциональности

Aleksandr
08.12.2016
21:36:33
Ядро содержит минимум функциональности
смотри, у тебя есть модуль Blog. Есть модуль User. В контексте ядра ты пишешь адаптер, который связывает два модуля, реализуя необходимые интерфейсы модулей. Не вижу проблему в такой схеме
ну или не ядра, а приложения, которое использует модули и ядро

Sergey
08.12.2016
21:37:15
я просто не понимаю что есть "ядро"
и зачем оно нужно

Jan
08.12.2016
21:38:03
Реализацию HTTP, отдаленно напоминающую Симфони, кеш, логгер. Абстракция БД

Google

Sergey
08.12.2016
21:38:10
короч фреймворк
окей....

Viktor
08.12.2016
21:38:21

Jan
08.12.2016
21:38:34
А вот врывается автор))₽

Sergey
08.12.2016
21:38:43
окей....

Viktor
08.12.2016
21:38:44
и вырывается, т.к. на работу пора.

Sergey
08.12.2016
21:38:47
у тебя есть фреймворк
твое приложение - это отдельная штука.

Aleksandr
08.12.2016
21:39:24
отдельная штука, работающая на основе ядра

Sergey
08.12.2016
21:39:25
при помощи инверсии зависимости например (если уж мы про гексагональную архитектуру заговорили)
причем не надо путать инверсию зависимости и инъекцию оных
инъекция зависимости это способ реализации инверсии управления
что бы фреймворк дергал приложение а не приложение фреймворк
писать свои фреймворки... в целом глупо... есть куча готовых. И компонентов готовых
вот я там чуть выше видос выкладывал почти про это

Jan
08.12.2016
21:41:10
@POPSuL лучше объяснит, почему он написал ядро.

Sergey
08.12.2016
21:41:21
"захотелось", обычно по этой причине

Viktor
08.12.2016
21:41:22
"потому что гладиолус"

Sergey
08.12.2016
21:41:51
или как говорил Янг в видео что я скинул - "задачи бизнеса слишком просты для моего огромного мозга! лучше я попытаюсь их обобщить и напишу фреймворк"

Viktor
08.12.2016
21:42:02
надо устроить митинг и рассказать всем почему именно так)

Google

Jan
08.12.2016
21:42:09
Сейчас у нас несколько подпроектов, которые завязаны на ядро. То есть мы как бы один большой проект, но внутри него подсайты

Sergey
08.12.2016
21:42:16

Jan
08.12.2016
21:42:41
Да.
При этом ядро не через композер установлено, в просто include.

Sergey
08.12.2016
21:43:01
делаем инверсию управления, и у нас развязаны руки

Jan
08.12.2016
21:43:13
В остальном MVC

Viktor
08.12.2016
21:43:20

Sergey
08.12.2016
21:43:27
> В остальном MVC
в моем понимании это значит "фигачим в контроллерах"
MVC на бэкэнде не бывает)

Jan
08.12.2016
21:43:42

Sergey
08.12.2016
21:43:44
есть MVC Model2 из джава мира 90-х но мы же не про него?

Sergey
08.12.2016
21:44:08

Jan
08.12.2016
21:44:19

Sergey
08.12.2016
21:44:25
ну ок
давай
точка входа, начнем с нее
она должна быть и должна быть только одна
как оно у тебя сейчас сделано?

Jan
08.12.2016
21:47:04

Google

Sergey
08.12.2016
21:47:20
окей
пока все вроде как обычно
теперь что делают контроллеры кроме как работа с HTTP запросами/ответами?
есть ли что-то, что мешает вынести код получения данных/обработки данных в отдельные классы?
которые ничего не будут знать о ядре или о контроллерах

Jan
08.12.2016
21:50:34
В общем-то ничего не мешает.

Sergey
08.12.2016
21:51:55
окей)
ну тогда... в чем проблема?
если ничего не мешает - значит проблемы нет

Admin
ERROR: S client not available

Sergey
08.12.2016
21:52:35
если тебя это ядро не заставляют суппортить - то проблемы вдвойне нет.
если ты можешь отгородиться от ядра своими адаптерами - все хорошо.
вопрос еще в том, есть ли в этом смысл

Jan
08.12.2016
21:59:08
Ну, просто хотелось бы, чтобы на уровне ядра были решены некоторые вещи, которые сейчас на проектах плодятся в разных реализациях.
Фреймворки развразащают © ?

Sergey
08.12.2016
22:00:41

Jan
08.12.2016
22:01:39
CSRF (уже запилено), валидация данных, да тот же, прости господи, контейнер.
Под контейнером я, прежде всего, подразумеваю резолвинг, например, в контроллерах.
Т.е. я не предлагаю его пихать как зависимость в конструкторы каких-то классов.

Sergey
08.12.2016
22:03:55
1. Впили composer и сделай подключение твоего ядра через него
2. Добавляй что хочешь

Google

Sergey
08.12.2016
22:04:08
пока я вижу лень)

Jan
08.12.2016
22:04:09
@fes0r Еще вопрос (весьма животрепещующий) относительно зависимостей в Composer. Как решается вопрос с поддержанием их в актуальном состоянии так, чтобы ничего на других проектах не сломалось? Satis?

Sergey
08.12.2016
22:04:25
git?

Viktor
08.12.2016
22:04:32
использовать фиксированные версии

Jan
08.12.2016
22:04:37
@fes0r там выше @POPSuL уже сказал, что подключение через composer невозможно.
Ядра в смысле.

Sergey
08.12.2016
22:04:50

Viktor
08.12.2016
22:05:10
локально его можно прицепить как компосер-проект, добавляешь гит-реп и пишешь зависимость. но в проде - нельзя.

Sergey
08.12.2016
22:05:14
если мне предоставят хотя бы один пункт почему "низя" - тогда будет предметнй разговор

Jan
08.12.2016
22:05:31
@fes0r я имею в виду, что есть, условно, 15 зависимостей, на которых построена разработка всех подпроектов. Зависимость меняется, где-то что-то ломается.

Sergey
08.12.2016
22:05:44
ничего не должно ломаться
)
если лень проверять руками - тесты
причем тут нюанс. Тесты на интерфейсы, то с чем работают, не должны требовать изменений
ну то есть ты написал тест, и теперь тебе запрещено его менять
тогда клиенты твоего класса (код который его юзают) точно не сломаются

Vladimir
08.12.2016
22:07:50
А зачем вообще общие зависимоти у независимых проектов, у которых общее только ядро?
Или ядро это больше чем вы сказали и там ещё какие-то данные и бизнес логика лежит?
Каждому проекту по своему composer.json и composer.lock

Jan
08.12.2016
22:08:29
Vladimir http, db, cache, session, logger — вот эти вещи в ядре.