@prophp7

Страница 116 из 1387
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
Сейчас у нас несколько подпроектов, которые завязаны на ядро. То есть мы как бы один большой проект, но внутри него подсайты

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
При этом ядро не через композер установлено, в просто include.
а это особенность, и я бы даже сказал, требование :)

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
А как? Объясни, пожалуйста.
ну.... например... можешь мне обрисовать что запускается первым? Есть какая-то точка входа?

Sergey
08.12.2016
21:44:25
ну ок

давай

точка входа, начнем с нее

она должна быть и должна быть только одна

как оно у тебя сейчас сделано?

Jan
08.12.2016
21:47:04
ну.... например... можешь мне обрисовать что запускается первым? Есть какая-то точка входа?
Условно говоря, index.php на подпроекте. Дёргает ядро на запуск роутинга и соответствующего контроллера.

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?

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

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

Ядра в смысле.

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 — вот эти вещи в ядре.

Страница 116 из 1387