
Big_Shark
30.01.2017
20:28:14
PSR 6
// get item from Pool
$item = $pool->getItem('key');
// get item value
$value = $item->get();
// ... or change the value & store it to cache
$item->set('updated-value');
$pool->save($item)

Sergey
30.01.2017
20:28:50
а, ну так да

Big_Shark
30.01.2017
20:29:52
пср16 очень был удобен с тайп хинтом, то есть можно было ворочить итемом, а использовать ключ только в одном месте
а вот пср 16 снова тупой как столб

Google

Sergey
30.01.2017
20:32:24
о кстати. кто чем ловит мемори лики?

Big_Shark
30.01.2017
20:32:36
Шо?

Sergey
30.01.2017
20:32:41
на пхп

Big_Shark
30.01.2017
20:32:49
какие еще лики?

Sergey
30.01.2017
20:32:57
ну вот скажем есть у тебя консьюмер очереди кролика
который висит неделями, и на каждую итерацию потребление памяти растет на 10кб скажем
как вычисляете места где течет память?

Taras
31.01.2017
12:38:50
блин, кажись расширение для нормальной работы с отношениями типа many-to-many-through-the-ass прийдется писать с нуля самому... ибо не существует адекватного решения.

Mikhail
31.01.2017
12:42:29
ага, только через ещё одну сущность

Taras
31.01.2017
12:43:41
и имя сией ссущности - жопа... Адд гребанный.
такое чувство, что задача, сцука, не типичная... а это самая простейшая бизнес-задача и зависимость.
при этом в ларавеле решение есть простое...
вот здесь кстати есть над чем подумать: http://stackoverflow.com/questions/26253148/dynamically-map-manytoone-relations

Google

Taras
31.01.2017
12:47:44
в oro-crm, кстати, тоже забавное решение на мегатонны кода.
просто опций сцука нету... или, блин, забиваем на все болт, разделяем на отдельные запросы и собираем все данные в репозиториях по запчастям, или... хотя, может это и вариант как раз...
Есть ли жизнь без ORM?

Sergey
31.01.2017
13:09:28
ну и целая куча подходов
из того что ты описал твоя проблема что задачи которые ORM не умеет решать ты пытаешься делать через ORM)

Taras
31.01.2017
13:12:56
в том-то и дело, я думаю это я делаю из мухи слона, или действительно проблема в возможностях доктрины?

Sergey
31.01.2017
13:13:44
давным давно на проекте сделал вот такую штуку, она показалась дико удобной...
<?php
namespace AppBundle\DependencyInjection\Traits;
use Doctrine\ORM\EntityManager;
trait EntityManagerTrait
{
/** @var EntityManager */
protected $em;
/**
* @param EntityManager $em
* @return $this
*/
public function setEntityManager(EntityManager $em)
{
$this->em = $em;
return $this;
}
}
теперь на проекте используется 773 раза как "use" и стала раком последней стадии ?
*к теме быстрых решений на коленке

Taras
31.01.2017
13:14:42
это не быстрое решение... ) но да, то что у тебя - жестко... )

Sergey
31.01.2017
13:15:12

Алексей
31.01.2017
13:15:25
"Возможно Doctrine вам не нужна" :)

Taras
31.01.2017
13:15:29
какое именно?

Sergey
31.01.2017
13:15:49
https://www.youtube.com/watch?v=rzGeNYC3oz0

Алексей
31.01.2017
13:15:52
Где Marco Pivetta выступает на PHP UK

Sergey
31.01.2017
13:16:05
если не смотрел - сейчас самое время

Taras
31.01.2017
13:17:17
не, это не смотрел... спасибо, щас гляну. Хотя судя по слову best practice, к сожалению, best practice в программировании это не совместимое с business-practice )

Sergey
31.01.2017
13:17:34

Taras
31.01.2017
13:17:46
сейчас уже смотрю, спасибо )

Sergey
31.01.2017
13:17:47
половина доклада на тему "не юзай доктрину"

Google

Taras
31.01.2017
13:19:57
Если не доктрина то что? :(

Sergey
31.01.2017
13:20:14
dbal)

Taras
31.01.2017
13:20:31
Экак ты меня послал )))

Sergey
31.01.2017
13:20:39
http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/query-builder.html вот прям запросики строить можно

Taras
31.01.2017
13:22:25
да можно-то можно... вот чувствую что к этому все и идет...
правда как это все на entity мапить я вот еще не знаю )
я изредка скучаю по безфреймворковым временам )
ох***ное видео

Sergey
31.01.2017
13:56:30
а я что говорил

Taras
31.01.2017
13:56:36
Пасиба!

Sergey
31.01.2017
13:56:46
ну и что ты для себя нового узнал?)

Taras
31.01.2017
13:56:55
Погоди, еще не досмотрел :))

Sergey
31.01.2017
13:57:01
а ну ок
ждем

Taras
31.01.2017
13:57:14
Но уже вижу наконец-то зачем интересно DTO )

Алексей
31.01.2017
13:57:20

Sergey
31.01.2017
13:57:33

Taras
31.01.2017
13:57:33
Есть еще вопросы, если не вкурю до конца, то замучаю вопросами )))

Sergey
31.01.2017
13:57:46

Taras
31.01.2017
13:57:49
Не надо ее выкидывать... просто уйти от формошлепства :)

Google

Taras
31.01.2017
14:04:11
@fes0r а у тебя нету примера валидации DTO в симфони? т.е. до того как он конвертируется уже в объект? А то я кажись начинаю что-то подозревать
вот не согласен я только по отсутствию необходимости SoftDeleted

Алексей
31.01.2017
14:27:32
ЕМНИП, там речь идёт про SoftDeletable, который глубоко вгрызается в доктрину. Там не говорится о том SoftDeletable, который работает на уровне бизнес-логики.

Taras
31.01.2017
14:27:55
ЕМНИП - это чо?

Алексей
31.01.2017
14:28:05
Если Мне Не Изменяет Память.

Taras
31.01.2017
14:28:49
И там как раз говорится о том чтобы не использовать Soft Delete полностью, заменив ее к примеру на аудит или что вообще всегда существуют бекапы.
дословно.

Алексей
31.01.2017
14:29:01
Не совсем.

Admin
ERROR: S client not available

Taras
31.01.2017
14:29:38
можно пересмотреть, это примерно 37-38 минута

Алексей
31.01.2017
14:29:39
Он говорит о том, что использовать вот такой:
https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/softdeleteable.md
SoftDeletable - нехорошо.
А ещё он намекает, что возможно у тебя не SoftDeletable, а архивация.
У нас в проекте есть SoftDeletable, но он на уровне бизнес-логики. То есть, если сделать выборку из таблицы через DQL - он вернёт все записи, если не попросить не выбирать "удалённые".
В случае SoftDeletable из расширений тебе DQL-запрос не вернёт "удалённые" записи.

Taras
31.01.2017
14:30:47
ты имеешь ввиду Gedmo\Softdeleteable?

Алексей
31.01.2017
14:31:13
Типа того. И любой аналог, который на уровне ORM делает вид, что записей нет, когда они есть.
Хотя, возможно, я его неправильно понял. Но это мне кажется более логичным.

Taras
31.01.2017
14:32:10
Видимо неправильно понял. ) Я ж говорю, при желании можешь пересмотреть 37-39 минута где-то это

Алексей
31.01.2017
14:32:22
Я смотрел.
Я не вижу противоречий в том, что он говорит и том, как я его понимаю.
У него там на слайдах написано:
> Soft Deletes can usually be replaced with more specific domain concepts.

Google

Denis denya Voskoboinik
31.01.2017
14:57:04
вместо софт делита лучше перемещать все в другую таблицу)
а то как ни крути все равно везде нужно помнить про него

Алексей
31.01.2017
14:58:53

Denis denya Voskoboinik
31.01.2017
14:59:11
?

Алексей
31.01.2017
14:59:21
Всё продумано!
А вообще, если без шуток, то у нас специфика такая. Нам перемещать нельзя. У нас данные постоянно туда-сюда. Я это назвал SoftDeletable только чтобы Тарасу проще мысль понять было. Это скорее флаги неактивности.

Denis denya Voskoboinik
31.01.2017
15:01:46
ну тогда хрустальный шар не нужен)

Алексей
31.01.2017
15:02:34
Блин, а мы уже партию закупили и всем выдали...

Taras
31.01.2017
15:09:08
ну так soft-deletable это и есть по сути флаг неактивности ) Можно его статусом обозвать, или еще каким-то trash-ем

Алексей
31.01.2017
15:09:57
Вот только, я уверен, Марко говорит о том, что фильтровать по нему данные на уровне ORM не стоит. А не о том, что флаг - это плохо и надо уносить в другую базу.
То есть, в моей трактовке, если упростить совсем, то если у тебя EntityManager#remove() не удаляет из БД, а проставляет флаг удаления - это не очень хорошая мысль.

Denis denya Voskoboinik
31.01.2017
15:12:51
но ведь если у тебя никто не должен удалиться то надежнее доверить ORM а не полагаться на то что никто не удалит запросом где-то)

Алексей
31.01.2017
15:14:30
Блин, с третьей попытки распарсил :)
SoftDeletable тоже как бы не помешает удалить NativeQuery, например.
Просто чуть больше дырок прикроет.

Sergey
01.02.2017
09:52:52
теги в гитхабе - огонь!

Ivan
01.02.2017
09:54:29
ммм?
вроде ничего не поменялось
о чем ты вообще?)

Mikhail
01.02.2017
09:55:42
теги, которые топики
о чем ты вообще?)
теперь репозитории можно тегировать (и они даже немножечко сами тегируются) и можно искать репы по тегам