@prophp7

Страница 1070 из 1387
Maksim
11.05.2018
08:50:49
вполне в тему
да не особо) но, тем не менее, почему он там в тему?)

Andrew
11.05.2018
08:51:11
У меня IDE выкидывать ошибку будет в методе конструктора

если там более 3-х методов

вернее варнинг

Google
Maksim
11.05.2018
08:51:35
это единственная причина по котором там такой объект?)

Andrew
11.05.2018
08:51:43
угу

Maksim
11.05.2018
08:51:57
а если этот объект можно разбить на несколько логических?)

Alexander
11.05.2018
08:52:29
а зачем пользователю сразу передавать activationToken?

он нужен в сущности?

Maksim
11.05.2018
08:53:02
в общем, хер меня Фессор убедит, что он там в тему) просто запихнули, что бы было одним параметром и всё)

Sergey
11.05.2018
08:53:56
Alexander
11.05.2018
08:54:38
и activationToken должен в другом месте создаваться и отправлять пользователю, класс User с этим не должен быть связан почти никак (от User там только идентификатор и email нужен)

Maksim
11.05.2018
08:55:53
да и при регистрации changePassword чёт как-то не звучит

Andrew
11.05.2018
08:56:20
он инициализируется по дефолту как Null

поетому мы его change

Google
Maksim
11.05.2018
08:56:43
у тебя при создании нет пароля) ты ничто меняешь на что-то)

Alexander
11.05.2018
08:56:45
а зачем ты его передаешь тогда в дто?

Maksim
11.05.2018
08:57:23
а зачем ты его передаешь тогда в дто?
даже так: отдельным VO с паролем, который не включает соль и метод криптования)

Andrew
11.05.2018
08:57:34
нет, при создании любой сущности надо инициализировать все параметры

ибо тогда будет невалидное состояние

Поле не должно быть null

а VO

и там уже null

Alexander
11.05.2018
08:58:26
ну так передавай сразу не нулл, а то, что передаешь в change

Valentin
11.05.2018
08:58:30
Это гениально)

Alexander
11.05.2018
08:58:56
а то пока херь какая-то получается: ты создаешь объект с невалидным состоянием и потом его меняешь)

Maksim
11.05.2018
08:59:03
ну так передавай сразу не нулл, а то, что передаешь в change
ему энкодер нужен) поэтому наоборот сделал)

Andrew
11.05.2018
08:59:28
угу

енкодер нужен

делал по гайдам симфони

и примерам с гитхаба

Maksim
11.05.2018
09:00:00
ну тут register реально на себя дохера берёт)

Andrew
11.05.2018
09:00:20
так для етого ето ж и Factory

Alexander
11.05.2018
09:00:22
public function register(array $data) : User { $salt = base64_encode(random_bytes(55)); $activationToken = preg_replace('/\//', '', base64_encode(random_bytes(55))); $slug = $this->stringHelper->transliterate($this->stringHelper->slug($data['nickname'])); $encodedPass = $this->encoderFactory->getEncoder($newUser)->encodePassword( $newUser->plainPassword()->plainPassword(), $newUser->salt()->salt() ); $newUser = new User( $data['nickname'], $slug, $data['email'], new UserPassword($encodedPass), $salt, $activationToken // TODO - add here default user UserRole ); //dump($newUser); //exit; $newUser->eraseCredentials(); // я не знаю че делает этот метод, потому оставлю его здесь return $newUser; }

Andrew
11.05.2018
09:00:39
?

Google
Alexander
11.05.2018
09:00:48
ну и вот уже не нужно вызывать change

Andrew
11.05.2018
09:00:51
$newUser->eraseCredentials();

Maksim
11.05.2018
09:00:56
> // я не знаю че делает этот метод, потому оставлю его здесь удаляет plain данные

Andrew
11.05.2018
09:00:56
чистит пароль

доки симфы

да

причем он идет в интерфейсе из пакета Сукурити

Alexander
11.05.2018
09:01:21
я на симфони не пишу

Andrew
11.05.2018
09:01:26
я бы использоватл changePassword метод

Alexander
11.05.2018
09:01:35
и доки симфони не видел не разу

только компоненты отдельные

Maksim
11.05.2018
09:01:45
Andrew
11.05.2018
09:01:51
ну, там много прилетаел лишнего с этим пакетом

Alexander
11.05.2018
09:02:12
футакимбыть)
да не, мне норм: в галере где работаю еще, симфонией не принято пользоваться

Maksim
11.05.2018
09:02:45
да не, мне норм: в галере где работаю еще, симфонией не принято пользоваться
такое себе оправдание) а как же спортивный интерес)

Alexander
11.05.2018
09:03:25
но возвращаясь к коду: вызывать changePassword при создании юзверя — изврат еще тот

такое себе оправдание) а как же спортивный интерес)
из спортивного интереса только DomCrawler юзаю

остально хз зачем мне нужно

public function register(array $data) : User { $salt = base64_encode(random_bytes(55)); $slug = $this->stringHelper->transliterate($this->stringHelper->slug($data['nickname'])); $encodedPass = $this->encoderFactory->getEncoder($newUser)->encodePassword( $data['password'], $salt ); $newUser = new User( $data['nickname'], $slug, $data['email'], new UserPassword($encodedPass), // TODO - add here default user UserRole ); //dump($newUser); //exit; $newUser->eraseCredentials(); // я не знаю и знать не хочу че делает этот метод, потому оставлю его здесь return $newUser; } скорее даже вот так: активацией должен другой сервис заниматься, который принимает нужные ему данные о пользователе, а не класс пользователя

а то тут какая-то мощная фабрика получается: она и экземпляр пользователя создает, и знает как токен активации придумать, жаль не отсасывает только

Google
Sergey
11.05.2018
09:30:36
я бы использоватл changePassword метод
для того что бы его впервый раз проинициализировать? не, не надо быть таким ленивым

Alexander
11.05.2018
09:44:48
Мне кажется генерацию слуга надо в конструктор Юзера вынести, это как уникальный идентификатор, за него должна отвечать сама сущность (так же как и uuid например генерируют в конструкторах)
спорно: Uuid лучше тоже предоставлять уже готовый откуда-то извне, например, из сервиса. а уж откуда сервис его возьмет — другой вопрос

Sergey
11.05.2018
09:46:16
ну и слагу в целом нечего делать внутри пользователя

я бы это в отдельную вообще сущность выносил

хотя я это я, у меня вообще философия намного более радикальна в этом плане

Alexander
11.05.2018
09:49:36
суть остается той же: здесь много того, чем НЕ должна заниматься фабрика

Sergey
11.05.2018
09:50:17
суть остается той же: здесь много того, чем НЕ должна заниматься фабрика
ну не соглашусь, тут все то чем должна заниматься фабрика

фабрика инкапсулирует в себе все то что требуется для создания чего-то. Что бы предоставить максимально легкий фасад и спрятать все зависимости

Admin
ERROR: S client not available

Sergey
11.05.2018
09:51:04
тот вопрос что то что мы создаем это пачка данных связанных между собой только фактом того что "это про юзера" - это абсолютной другой вопрос

который может привести к тому что нам и фабрика отдельная не понадобится.

(хотя по хорошему все сущности должны пораждаться другими сущностями, то есть фабрика нужна всегда, просто это может быть не просто специализированный сервис-фабрика))

например "контроллеры" - так себе фабрика)

Alexander
11.05.2018
09:52:54
смотря насколько широко глянуть на понятие фабрики)

контроллер можно обозвать фабрикой для Response =D

Sergey
11.05.2018
09:54:09
ммм в целом можно, но смысла в этом мало

Alexander
11.05.2018
09:56:19
ну мой взгляд на фабрику такой: она должна взять набор готовых данных и вернуть объект, а заниматься созданием новых данных она не должна. всякие Uuid, Token, Slug и т.д. — это лишнее

да и в целом, я отношусь к фабрикам, как к способу легкого переопределения экземпляра класса, который будет использоваться, к способу уменьшить связность кода

Google
Alexander
11.05.2018
09:59:29
Подскажите в PHPStorm горячие клавиши, для того чтобы, находясь в окне с содержимым файла, меня перекинуло в окно дерева файлов проекта, но уже в ту папку, в которой находится просматриваемый файл. Есть такое вообще? К примеру я смотрю файл /web/index.php. А в дереве файлов проекта у меня открыто /vendor/blabla/blablabla/. Я хочу чтобы я нажал кнопочку, и в окне с деревом файлов проекта, меня перекинуло на /web/

Alexander
11.05.2018
10:04:27
Спасибо добрый человек

Oleg
11.05.2018
10:04:33
или в настройках панели autoscroll from source

Alexander
11.05.2018
10:09:05
А как сделать ее нетбиновской?

Alexander
11.05.2018
10:09:48


Alexander
11.05.2018
10:10:28
спасибо

Alexander
11.05.2018
10:11:04
у меня просто синдром утенка, первой IDE был Netbeans, потому и клавиши оттуда использую, к клавишам от IDEA привыкнуть пока не могу

короч ладно, делай что хочешь и как хочешь) не мне тебя учить)
по поводу того, что не тебе меня учить — хз, послушать другие варианты всегда интересно

вроде бы и чатик как раз для подобных целей придуман)

Olexandr
11.05.2018
10:23:30
посоветуйте где можно подробно почитать про принципы програмирования на пхп, ну и про самые распространненые практики

Olexandr
11.05.2018
10:28:35
спасибо)

Борис
11.05.2018
13:07:38
Парни, в php7 ввели default функционал callSOmeFunction(default) ? или мне приснилось

Страница 1070 из 1387