
Sergey
02.02.2018
19:42:25
https://phpunit.de/announcements/phpunit-7.html

Andrew
02.02.2018
19:48:08
Alan Bondarchuk ??, [01.02.18 22:52]
в ооп чатике говорят репозиторий чисто коллекция и не стоит примешивать туда обработку ошибок в логике
можно линк на чатик пожалуйста?

Bohdan
02.02.2018
19:56:38
@oop_ru

Andrew
02.02.2018
19:59:30
@thatside пасиб

Google

Sergey
03.02.2018
00:51:27
если кто захочет попытать счастья с phan - https://gist.github.com/fesor/a47413c0441367a032e94ea570af1e64
для тех кто еще не избавился от использования контейнера в коде

Andrew
03.02.2018
06:55:03
Скажите пожалуйста, как я понимаю, даный пакет
https://github.com/ramsey/uuid-doctrine
генерирует UUID только при ->flush() в бд,
?
Я бы хотел использовать UUID в Factory, для последущей привязки нужных данных к сущности, а если UUID генерирует доктрина при вставке, то смысла в пакете не вижу

Вадим
03.02.2018
07:08:31

Andrew
03.02.2018
07:08:59
да, но тогда смысл пакета пропадает)
сейчас смотрю исходники как генерит

Вадим
03.02.2018
07:09:58

Andrew
03.02.2018
07:11:37
@VadimXIF не понимаю, если UUID генерирую сам, естественно до записи в БД

Alexandr
03.02.2018
07:11:51

Google

Alexandr
03.02.2018
07:12:14
Это просто тип данных для доктрины

Andrew
03.02.2018
07:12:21
так погодите, там вроде как есть в доктирне
guid

Alexandr
03.02.2018
07:12:37
Доктрина так то сама умеет ууиды генерировать при флаше

Andrew
03.02.2018
07:12:38
и в PostgreSQL будет норм uuid поле как и если делать uuid от Ramsey

Alexandr
03.02.2018
07:12:56
Да, но мапится он будет на простой string
Внутри приложения

Andrew
03.02.2018
07:13:09
@AlexKrasnov то при флаше, а мне надо до, что бы привязать картинки к сущности которой еще нет
в бд

Alexandr
03.02.2018
07:13:52

Andrew
03.02.2018
07:14:05
угу, понял, спасибо

Вадим
03.02.2018
07:14:36
$this->id = Uuid::uuid4(); в конструкторе

Andrew
03.02.2018
07:16:01
Да, я видел это, там будет такое
Uuid {#1009 ▼
#codec: StringCodec {#5009 ▼
-builder: DefaultUuidBuilder {#831 ▶️}
}
#fields: array:6 [▼
"time_low" => "244ea05e"
"time_mid" => "73be"
"time_hi_and_version" => "4be9"
"clock_seq_hi_and_reserved" => "88"
"clock_seq_low" => "96"
"node" => "b26191d49a2e"
]
#converter: DegradedNumberConverter {#1096}
}
не совсем понимаю как потом делать выборки из такого
Прощу думаю использова простой string

Вадим
03.02.2018
07:17:47
Блин, toString вызви

Andrew
03.02.2018
07:18:27
О, клас

Вадим
03.02.2018
07:18:29
https://github.com/ramsey/uuid/blob/master/README.md

Andrew
03.02.2018
07:18:29
Спасибо)

Google

Вадим
03.02.2018
07:19:04
Желательно читать доку, перед тем как с чем-то работать

Andrew
03.02.2018
07:20:22
@VadimXIF я немножк не туда смотрел
https://github.com/ramsey/uuid-doctrine/blob/master/README.md
Хм, я тут почитал, и нашел такое Twitter Snowflake id generator, думаю он будет куда более практичен в отличии от ramsey/uuid
Возможно кто уже реализовал такое на PhP?
И есть какой пакетик?)
Или возможно лучше подойдет вот это?
https://github.com/gpslab/base64uid

Arky
03.02.2018
09:26:31

Andrew
03.02.2018
09:26:47
это именно оттуда)
Однако у меня есть сомнения по поводу кода
его уникальности

Andrew
03.02.2018
09:27:08
в плане то что он генерирует

Vladislav
03.02.2018
09:35:32

Sergey
03.02.2018
10:02:26

Andrew
03.02.2018
10:03:24
@fes0r я сделал свой objectvalue, оставил так
/**
* @var string
*
* @ORM\Id
* @ORM\Column(type="guid", unique=true)
*
* @Groups({"list", "single"})
*/
private $id;

Sergey
03.02.2018
10:03:53

Andrew
03.02.2018
10:03:58
наткнулся на статью из хабра, которую выше кинули, и там пакет же, вот и возник вопрос, про то как лучше генерить UUID
@fes0r да мало ли)

Sergey
03.02.2018
10:04:23

Google

Andrew
03.02.2018
10:04:42
не, я про метод генерации

Sergey
03.02.2018
10:04:45
последнее даст тебе возможность генерить айдишку как угодно

Andrew
03.02.2018
10:04:48
сек

Sergey
03.02.2018
10:05:05

Andrew
03.02.2018
10:05:11
https://github.com/gpslab/base64uid/blob/master/sr...
vs
https://github.com/ramsey/uuid/blob/master/src/Uuid.php
@fes0r сделал свой VO что бы было все более менее схожое, меньше сторонних зависимостей

Sergey
03.02.2018
10:05:53
ничего не понимаю

Admin
ERROR: S client not available

Andrew
03.02.2018
10:06:12
ссылки я дал, там разная реализация генерации UUID

Sergey
03.02.2018
10:06:30
не юзай левые реализации, юзай рэмси

Andrew
03.02.2018
10:06:42
@fes0r )

Sergey
03.02.2018
10:06:53
p.s. знаю чувака который по первой ссылке - это будет левой реализацией в моем понимании
что до статьи - преобразование айдишки в такое представление надо делать на стороне UI

Andrew
03.02.2018
10:09:58
@fes0r в плане ничего не надо ставить из пакетов
https://stackoverflow.com/questions/3034861/youtube-url-algorithm

Sergey
03.02.2018
10:10:01
ну то есть не в базе и не в сущности
ну тут правда в этом случае у нас uuid будут длиннее так как надо сохранять возможность обратной трансформации...
/foo?id=mavTAjNm4NVztDwh4gdSrQ
вот так вот можно сделать просто конвертируя uuid в base62

Google

Sergey
03.02.2018
10:16:20
https://github.com/pascaldevink/shortuuid

Andrew
03.02.2018
10:17:26
@fes0r ооо, ща попробую
PostgreSQL ругаеться
SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for uuid: "H22vmjxVPqukiRyvEGYRqM"
думаю если поле id сделать string, ошибки не будет
* @ORM\Column(type="guid", unique=true)

Andrey
03.02.2018
10:45:56
?

Sergey
03.02.2018
11:44:37
потому что это не uuid
повторюсь, хранишь в базе uuid а в UI энкодишь
либо неэффективно хранишь айдишки в базе)

Andrew
03.02.2018
12:29:43
@fes0r я не совсем понимаю что вы подразумеваете видимо.
Есть User, в базе данных PostgreSQL поле id, типа uuid. Задано @ORM\Column(type="guid", unique=true) доктриновский тип из доков. Если просто вставлять тот UUID который генерирует new UserUUID($user->setIdUuid::uuid1()->toString()), то все работает. А вот если new UserUUID($user->setIdUuid::uuid1()->toString($shortUuid->encode($uuid))) из $uuid = Uuid::fromString(Uuid::uuid1()->toString());
$shortUuid = new ShortUuid();, то выдает ошибку.
Мне не ясно что вы имеете ввиду UI, User Interface? Unique identifier? В смысле "неэффективно"?

Combot
03.02.2018
12:46:22
combot.org/chat/-1001091570538

Sergey
03.02.2018
13:47:09


Andrew
03.02.2018
13:48:55
а

Sergey
03.02.2018
13:49:01
по поводу не эффективного хранения - uuid в базе занимает 16 байт, а string для хранения base62 uuid будет занимать 22 байта
+ выравнивание
это будет увеличивать размер индексов и т.д. + забудь о том что бы сортировать по ID

Andrew
03.02.2018
13:49:39
то есть YouTube скорее всего использует 2 поля, slug и id
где slug представление uuid