Dmitrij
BotMan\BotMan\BotMan: ~
о, так завелось
Dmitrij
спасибо
Dmitrij
а есть подробное описание как работает контейнер в симфе ?
Dmitrij
как то в офф доке не совсем понятно
Dmitrij
https://symfony.com/doc/4.4/service_container.html
Vadim
Ты невнимательно читаешь. Поверь, я тоже был таким и жаловался на доку, пока не стал читать внимательно, не пропуская ни абзаца.
Dmitrij
ну то есть если в ларке, я могу прокинуть разную реализацию в зависимости от того где я вызываю реализацию интерфейса, то как здесь это работает ?
Vadim
https://symfony.com/doc/4.4/service_container.html
Тут как раз есть решение твоей проблемы
Dmitrij
в доке я вижу тегирование, но не вижу как оно на практике применяется, не получается его использовать
Dmitrij
я правильно понимаю, что в симфе нет автовайринга по аналогии с ларкой? нужно только все в service.yaml описывать ?
Vadim
В смысле нет? Там автовайринг покруче ларавеля. В сервисах надо описывать только примитивы, о которых контейнер не может знать (пути, пароли, токены), и биндить интерфейсы на реализацию.
Dmitrij
ну вот смотри, я длопустим взял сделал репозиторий какой то сущности, у меня его не подхватывает автовайрингом
Vadim
Какая версия симфони? Где лежат репозитории?
Dmitrij
4.4
Dmitrij
src/Rep
Сергей
должно там всё подхватываться
Vadim
Ты с путями накосячил, скорее всего.
Dmitrij
Ты с путями накосячил, скорее всего.
ну успел, я только развернул проект
Dmitrij
и впендючил туда 1 либу
Сергей
src/Rep
src/Repository
Dmitrij
пытаюсь понять как тут что устроено, с докой расхождения, и пока не работает
Dmitrij
src/Repository
ну да, просто долго чтоб не писать
Vadim
Покажи начало файла с репой, контроллером и services.yaml
Dmitrij
Dmitrij
Dmitrij
типа в ямле не описан путь к папке Репозиториев ?
Vadim
Это не нужно, пока твои репы не находятся в exclude
Vadim
Ну а ошибка какая?
Dmitrij
Vadim
ну так у тебя написано, в чем ошибка. проблема не в репе, а в том, что ты в конструктор ее передаешь
Dmitrij
не, у меня эта Репа еще нигде не используется
Dmitrij
она только в Сущности в докблоке описана
Dmitrij
Dmitrij
а вот её внутренность
Dmitrij
наверное мой трабл в том, что я ожидаю, что оно работает так же как в Ларке )))
Vadim
Ты должен наследоваться от ServiceEntityRepository, если я не ошибаюсь. Ну а вообще, лучше без наследования, но об этом ты потом узнаешь.
Dmitrij
ServiceEntityRepository наследуется от EntityRepository
Dmitrij
ща попробую конечно
Dmitrij
Vadim
Ты конструктор вызвал родительский?
Dmitrij
нет, а зачем?
Dmitrij
он не собирается?
Сергей
ServiceEntityRepository наследуется от EntityRepository
в твоей репе напиши protected string $entityClass = BlaBla::class; public function __construct(RegistryInterface $registry) { parent::__construct($registry, $this->entityClass); }
Vadim
нет, а зачем?
А как он, по-твоему, должен понять, с какой сущностью работать?
Vadim
Это в ларавеле магия, а в симфони все строго и прозрачно.
Dmitrij
еще час долбаний и чувствую на ларку вернусь ))
Vadim
еще час долбаний и чувствую на ларку вернусь ))
Ну так ты документацию читай, а не долбись. Там на первых страницах показано, как делать (не нужно).
Сергей
Dmitrij
думал, что доктрина без разницы с каким Фреймом работает одинаково, а оказалось, что тут есть еще ньюансы по фрейму, а не только работе с ORM (( ну а контейнер конечно в симфе такой себе, может это только на начальных этапах всё громоздко и не понятно, ну та разберемся
Vadim
> Контейнер в симфони так себе В симфони как раз-таки самый классический, мощный контейнер, который не только автовайрит, но и который можно пересобрать, что-то убрать, что-то добавить на этапе компиляции. Ну и в ларке в основном сервис локатор используется.
Dmitrij
мдя... скучно тут как то в чате )) 10 минут ниодного сообщения ))
Сергей
мдя... скучно тут как то в чате )) 10 минут ниодного сообщения ))
Могу дать ссылку на большой чат, но тут уютнее)) и вопросы не уходят в небытие)
Dmitrij
Меня? Нет) там другого характера вопросы ))
Dmitrij
*светлая тема* МОИ ГЛАЗА!
у меня такие же глаза от темной темы )) и не очень хочу их портить )) не зря ж книги на белой бумаге печатают ))
Олексій
https://twitter.com/tproger/status/1209730770090242048
Dima
Светлая тема рулит, кроты вы непутевые
Dmitrij
На вкус и цвет... фломастеры разные
Ilya 🃏
Делал кто полноценный чат в каком-нибудь проекте? Поделитесь, пожалуйста, как лучше всего организовать непрочитанные сообщения?
Vadim
Хранить статус сообщения. И если статус "не прочитано", выделять каким-то цветом.
Maks
Делал кто полноценный чат в каком-нибудь проекте? Поделитесь, пожалуйста, как лучше всего организовать непрочитанные сообщения?
имхо хранить статус сообщения нет смысла, проще у пользователя держать дату/время взаимодействия с интерфейсом и если сообщения позже этой даты, то помечать каким-то цветом
Vadim
Диалогов может быть много, взаимодействие с интерфейсом не означает прочтение (если диалоги свернуты, к примеру). Статусом легче манипулировать, а прочтение сообщения и группы сообщений можно сделать через курсор, охват одного экрана, и все, что помещаются в область видимости, отмечать прочитанными.
Maks
"Диалогов может быть много" - держи дату у диалога "взаимодействие с интерфейсом не означает прочтение" - бинди на прокрутку ленты до низов
Maks
а еще же сообщения можно не хранить)
Alexander
И чат можно не делать 😅
Maks
И чат можно не делать 😅
как завещал Альтшуллер