@symfony_php

Страница 616 из 1418
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 генерирует доктрина при вставке, то смысла в пакете не вижу

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
да, но тогда смысл пакета пропадает)
The ramsey/uuid-doctrine package provides the ability to use ramsey/uuid as a Doctrine field type.

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
@AlexKrasnov то при флаше, а мне надо до, что бы привязать картинки к сущности которой еще нет
Как и говорили выше - делай сам в конструкторе ... Доктрина до флаша ничего делать не будет

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
https://github.com/gpslab/base64uid
https://habrahabr.ru/post/334994/

Andrew
03.02.2018
09:26:47
это именно оттуда)

Однако у меня есть сомнения по поводу кода

его уникальности

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

Vladislav
03.02.2018
09:35:32
https://habrahabr.ru/post/334994/
Хорошая статья

Sergey
03.02.2018
10:02:26
так погодите, там вроде как есть в доктирне
оно в базе будет хранить в uuid а в коде у тебя будет объектом. Что не понятного?

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

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

@fes0r да мало ли)

Sergey
03.02.2018
10:04:23
наткнулся на статью из хабра, которую выше кинули, и там пакет же, вот и возник вопрос, про то как лучше генерить UUID
генерить лучше либо в конструкторе, либо, что еще лучше - передавай айдишку в конструктор как зависимость

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

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

Andrew
03.02.2018
10:04:48
сек

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

Страница 616 из 1418