
Алексей
24.10.2017
10:47:09
Он автовайра один шаг к фасадам

Sergey
24.10.2017
10:47:34
абсолютно разные вещи

Алексей
24.10.2017
10:47:43
Разные
но шаг один

Google

Sergey
24.10.2017
10:47:55
есть Spring IoC и Guice в джава мире, где тоже во главе угла стоит автовайринг. и живут же как-то
в том веке все писали на xml

Алексей
24.10.2017
10:48:15
Именно как-то

Sergey
24.10.2017
10:48:19
и больше не хотят вспоминать те времена

Алексей
24.10.2017
10:48:22
Джава не показатель
тем более спринг

Andrew
24.10.2017
10:50:11
:D

Владимир
24.10.2017
10:50:15
Джава не показатель
Симфони с доктриной чуть меньше чем полностью вдохновлена аналогами из джавы, если что ))

Алексей
24.10.2017
10:50:34
https://www.reddit.com/r/PHP/comments/6oxuo3/what_do_you_thing_about_autowiring_in_symfony/dklnh2b/
For example, imagine you crafted a real nice service with a single implementation, that you need to inject somewhere. After a while, someone notices your service but creates an alternative implementation for some reason. By just declaring this new bean in the context, along with the former, it will break container initialization! Worse, it may be done in an entirely different part of the application, with seemingly no link with the former. At this point, good luck to analyze the reason of the bug.
Автовайр на практике хорош только для мелких проектов или отдельных Классов типа репозиториев
Но в кровавом энтерпрайзе это геморой

Google

Алексей
24.10.2017
10:52:35
Это как мы пытались на phalcon писать энтерпрайз

Andrew
24.10.2017
10:52:42
а что мешает иметь автовайринг включенным по дефолту, но конфигурировать ручками то что нужно?

Алексей
24.10.2017
10:52:59
ничего
так и нужно

Владимир
24.10.2017
10:53:15

Алексей
24.10.2017
10:53:16
Я курить
Это как наркотик
тут аключил автовайр
А завтра и там включишь
и там
и там
и все
ты автовайр наркоша

Andrew
24.10.2017
10:54:24
хорошая дискуссия и аргументы железобетонные

Boris
24.10.2017
10:54:46
в умелых руках и .. молоток =)

Алексей
24.10.2017
10:55:52

Sergey
24.10.2017
10:56:41
у нас опыт противоположный, размер кодовой базы 500к+ строк

Google

Urmat
24.10.2017
10:56:43
Я вот послушался ваших советов, и решил перекинуть репозитерии в сервисы. Для этого, я:
1) Создал один интерфейс(CityRepositoryAwareInterface) и трейт(CityRepositoryAwareTrait), чтобы в нужном место просто подключить их и не дублировать.
2) В нужном контроллере подключил сервисы:
services:
ApiBundle\Controller\CityController:
calls:
- [ setCityRepository, ['@Klabs\Sale\CommonBundle\Aware\CityRepository\CityRepositoryInterface']]
3) Непосредственно указываю, что это данный рпеозиторий является сервисом:
services:
Klabs\Sale\CommonBundle\Aware\CityRepository\CityRepositoryInterface:
class: Klabs\Sale\CommonBundle\Repository\CityRepository
arguments: ["@doctrine.orm.entity_manager", '@metadata']

Sergey
24.10.2017
10:57:00
единственное чего не хватало так это иньекции коллекции по интерфейсу, но в 3.4 сделли иньекцию по тегу

Алексей
24.10.2017
10:57:41

Urmat
24.10.2017
10:57:48

Sergey
24.10.2017
10:58:18
а зачем CityRepositoryAwareTrait?

Urmat
24.10.2017
10:58:25
А не знаю, что это за класс?

Sergey
24.10.2017
11:00:07

Владимир
24.10.2017
11:00:45
Читал, что трейты в PHP - зло, так как не являются чистыми mixin-ами, а являются костылями для кривокруких
Аргументы, правда, не помню

Urmat
24.10.2017
11:01:03

Владимир
24.10.2017
11:01:03
?

Алексей
24.10.2017
11:01:39
Так что автовайр - добро или зло?

Urmat
24.10.2017
11:01:48

Sergey
24.10.2017
11:02:09

Urmat
24.10.2017
11:02:12
Вопрос в том, что как узнать название сервиса по класссу? (Doctrine\ORM\Mapping\ClassMetadata)

Алексей
24.10.2017
11:02:16
нужен бот для голосования

Sergey
24.10.2017
11:02:50

Urmat
24.10.2017
11:02:57

Алексей
24.10.2017
11:03:16
Autowiring это...
Добро – 60
??????? 92%
Зло – 5
? 8%
? 65 people voted so far.

Google

Andrew
24.10.2017
11:04:06

Sergey
24.10.2017
11:04:09

Urmat
24.10.2017
11:05:20

Алексей
24.10.2017
11:05:58

Admin
ERROR: S client not available

Алексей
24.10.2017
11:06:24

Roman
24.10.2017
11:06:44
а почему зло?
какие аргументы против? что я пропустил?

Sergey
24.10.2017
11:06:53
пс. сорян что с нотифаем

Roman
24.10.2017
11:07:23
не, норм

Bohdan
24.10.2017
11:07:36

Владимир
24.10.2017
11:07:43
Да ну! В телеграмме есть возможность голосования?

Bohdan
24.10.2017
11:07:52
через ботов)

Алексей
24.10.2017
11:07:54

Владимир
24.10.2017
11:07:56
Я еще дикий - месяц пользуюсь

Bohdan
24.10.2017
11:08:08
в телеграме есть все через ботов

Владимир
24.10.2017
11:08:59
Чьёрд! Да это же викторину можно устроить и призы победившим, систему прокачки- ветераны, новички

Oleg
24.10.2017
11:09:14
На средне/малых проектах автовайринг однозначо добро. Но на больших проектах имхо его полезность сомнительна. Я за явный конфиг.

Алексей
24.10.2017
11:09:20
Better practice? That will not last for long. We always lag the Java community by a few years, so now as autowiring is becoming hot in PHP, the Java community has been burned by the resulting dependency spaghetti are calling it an anti-pattern.
It's a very tiresome cycle: "best silver bullet ever!" and then "worst anti-pattern ever!".
I'm not saying "do not use autowiring at all" (although I do not), but stay conservative and never ever allow your code to be dictated by the autowiring features. Never change how you design an object because of autowiring. And I'm afraid this is easier said.

Google

Sergey
24.10.2017
11:09:38

Алексей
24.10.2017
11:09:49

Sergey
24.10.2017
11:10:46

Владимир
24.10.2017
11:10:56
Кажется я открыл для себя нищщу для игроделов - текстовые квесты в телеграмме

Urmat
24.10.2017
11:11:03

Алексей
24.10.2017
11:11:09
Autowiring это штука более для автоматизации чем для надежности

Bohdan
24.10.2017
11:11:34

Алексей
24.10.2017
11:12:16
А про простоту
Ну и он более медленный
Так как использует рефлексию

Sergey
24.10.2017
11:13:09

Bohdan
24.10.2017
11:13:15
более медленный - на этапе сборки контейнера

Sergey
24.10.2017
11:13:25
конечный контейнер одинаковый выходит

Алексей
24.10.2017
11:13:34
Ну тут спорить не буду

Sergey
24.10.2017
11:13:49
а сборка медленнее на 20-30% это да

Владимир
24.10.2017
11:13:52