@symfony_php

Страница 101 из 1418
Rodion
10.02.2017
16:37:58
без лишних сеттеров с геттерами

всегда валидна при инициализации, т.е. не пустой конструктор

Sergey
10.02.2017
16:41:43
без лишних сеттеров с геттерами
а если она анемичная?)

Rodion
10.02.2017
16:41:56
конец рабочего дня, я пока просто рассуждаю без однозначных умозаключений. интересует одно - возможно ли отделить модели от энтити и имеет ли смысл.

Google
Sergey
10.02.2017
16:44:09
я все равно не понимаю что ты от чего собрался отделять. у тебя сущности и так отделены от всего. они не знают о твоей базе, персистентности, сервисах и прочем булшите. это чистая доменная модель

Alexey
10.02.2017
16:47:26
Всем привет. У меня есть вопрос. Может кто нибудь даст ответ. Например у меня есть несколько сущностей: баннеры, видео, тексты. Хочу прикрутить теги для этих сущностей, чтобы сделать фильтр. Насколько разумно делать теги общими для все. То есть одна сущность тег на 3. Если например захочу еще как-то разделять теги по категориям: формат, язык. В таком случае лучше заводить отдельную сущность тег под каждую? Или вводить отдельные таблицы вида языки, форматы и фильтровать по ним. Если языков малр 5-10. Вообще тогда стоит вводить таблицу?) Что-то не могу нормально построить связи. Есть ли хорошие рекомендации по построению таких связей?

Sergey
10.02.2017
16:51:41
с категориями и форматами не понял

но тебе ничего немешает там юзать доктрину)

Alexey
10.02.2017
16:53:31
Хмм. Форматы баннеров например 300на300

Sergey
10.02.2017
16:53:43
а какое они имеют отношения к тегам?

это чисто метаданные для баннера ведь

Alexey
10.02.2017
16:55:33
Ну то есть я хочу фильтровать по формату баннера. Щас все сделано плохо. Есть табоица тегов и теги имеют поле тип

То есть теги делятся на категории

Google
Alexey
10.02.2017
16:56:02
Формат язык и тп

То есть заводить таблицу пол языки с 4- 10 полями

Это нормально?

Alexey
10.02.2017
17:03:45
Еще такой вопрос встает. В таблице связи между тегами и сущностями будут три поля. Id тега, id сущности и id конкретного материла. Как лучше генерировать id сущности?

Sergey
10.02.2017
17:06:26
ну вообще можно композитный ключ заюзать

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html

Alexey
10.02.2017
17:40:37
Я правильно понимаю, что копозитный ключ нужно будет создавать на основе id сущности плюс что-то(имя класса например)?

Ведь id общей сущности должно быть одно и тоже.

Алексей
10.02.2017
21:37:20
Просто @Id вешается на два поля. Но это не рекомендуют делать.

Yuriy
11.02.2017
09:59:45
всем привет, есть таблица содержащая множествуную связь скажите пожалуйста как вывести значение этого множественые поля ?

при $query2->select('a.subjects') ->from('AvtorBundle:Avtor', 'a') ->where('a.id = :avtor_id') ->setParameter('avtor_id', $avtorId) ->getQuery() ->getArrayResult() ; я получаю сообщение ошибки [Semantical Error] line 0, col 9 near 'subjects FROM': Error: Invalid PathExpression. Must be a StateFieldPathExpression.

Rodion
11.02.2017
13:48:16
по возможности избегай двунаправленные связи, они большинстве случаев и не нужны вовсе

Yuriy
11.02.2017
16:01:01
"выбираешь из сущности Subject, где subject.author равен переданному автору." у меня однонаправленася связь и subject.author такого поля у меня вовсе нет

Rodion
11.02.2017
16:21:11
что ты хочешь получить? коллекцию Subject?

Google
Yuriy
11.02.2017
16:35:39
да, все id предметов которые выбраны для конкретного автора

уже разобрался $query2->select('a.subjects') ->from('AvtorBundle:Avtor', 'a') ->join('a.subjects', 's') ->where('a.id= :avtor_id') ->setParameter('avtor_id', $avtorId) ->getDQL() спасибо ответившим

Sergey
11.02.2017
19:15:20
{{ desc.pdate is empty ? "" : desc.pdate|date('d.m.Y') }} подскажите, как сделать чтобы дата заполнялась по дефолту текущей?

если форма пустая - текущая дата, если нет, дата предыдущего поста

Pavel
11.02.2017
19:16:49
http://twig.sensiolabs.org/doc/2.x/filters/default.html

Sergey
11.02.2017
19:17:09
{{ desc.pdate|default(date('d.m.Y) }}

Sergey
11.02.2017
19:28:48
что-то как всегда не так просто) Double timezone specification Может для формы -как-то по-другому...

Failed to parse time string (d.m.Y) at position 4 (Y): Double timezone specification"

Sergey
11.02.2017
19:35:27
{{ (desc.pdate|default("now"))|date('d.m.Y) }}

попробуй так

Sergey
11.02.2017
19:42:22
i am sorry... не туда пихаю

Алексей
11.02.2017
21:08:19
Кавычки ж закрывающей не хватило :)

Pavel
11.02.2017
21:15:17
Прям четкая фамилия для данной ситуации

Big_Shark
11.02.2017
21:28:19
@fes0r @Enleur парни, вопрос, мы создает объект и нам нужен ууид, сгенерить его на пхп, или запросить у базы? вроде если запрашивать у базы там есть проверка на то что такого ууида еще нет в базе. Как вы делаете?

Sergey
11.02.2017
21:28:47
генерить конечно, в этом же вся фишка

uuid уникальные всегда, шанс коллизий есть но совсем маленький

Big_Shark
11.02.2017
21:29:23
генерить конечно, в этом же вся фишка
эмм, ну так база же его тоже сгенерит, я сейчас не про авто инкремент говорю

Sergey
11.02.2017
21:30:15
ну я понял

а какой смысл?

Google
Sergey
11.02.2017
21:30:26
ты ж с тем же успехом его на пхп сгенеришь

Big_Shark
11.02.2017
21:30:55
а какой смысл?
Гдето читал что его можно заставить проверить что это реально уникальный ууид для данной таблички

Sergey
11.02.2017
21:32:16
Thus, for there to be a one in a billion chance of duplication, 103 trillion version 4 UUIDs must be generated.

https://en.wikipedia.org/wiki/Universally_unique_identifier#Random_UUID_probability_of_duplicates

ты можешь прям на всех серверах одновременно генерить и у тебя все равно не будет коллизии

Alan
11.02.2017
22:30:50
но нужно обратить внимание на:

Pseudorandom number generation often lacks necessary entropy, and RFC 4122 recommends that when a high-grade source of randomness is not available, that one of the other UUID versions be used instead.

Admin
ERROR: S client not available

Alan
11.02.2017
22:31:30
cat /proc/sys/kernel/random/entropy_avail должно быть 200 и больше

если мало то можно поставить rng-tools

Sergey
12.02.2017
11:45:20
ппц. нашел наконец где протекает форма в симфони. у них оказывается юзается CachingFactoryDecorator, который хранит у себя хеши и референсы на все созданные списки и естественно он никогда не очищается так что если юзаете php-pm будьте осторожны)

Sergey
12.02.2017
11:45:58
а есть способ почистить?

Sergey
12.02.2017
11:46:15
подменять алиасы буду

form.choice_list_factory.cached: alias: form.choice_list_factory.property_access

Sergey
12.02.2017
12:10:52
там кеш в смысле хранение списка внутри обьекта. если перезапустить процесс то все ок

Sergey
12.02.2017
12:14:48
как ты на этот лик вообще наткнулся?
есть поисковый модуль в системе, который работает в качестве демонов для того чтобы можно было запускать распределенно по нескольким серверам и процессам. вот когда он переезжал из веба, захватил с собой форму(построения фильтров нужна была)

Ivan
12.02.2017
12:16:05
а как в симфе лучше создавать форму с select-ом и заполнять его кастомными options полученными из бд? например для такого варианта: $this->createFormBuilder() ->add('car', ChoiceType::class, [ 'choices' => [ 'bwm' => 'Bmw', 'ferrari' => 'Ferrari' ] ]);

Google
Sergey
12.02.2017
12:16:47
можешь свой тайп сделать и туда пробросить репозиторий, из которого будешь делать выборку

Ivan
12.02.2017
12:17:31
ага. пасиба

Salavat
12.02.2017
12:51:02
какая-то беда с composer. не хочет ставитьь несколько пакетов. nothing to install or update.

Aleksey
12.02.2017
12:51:58
@sitsalavat попробуй кеши почистить. а какие пакеты?

Salavat
12.02.2017
12:52:32
"gregwar/image-bundle": "^2.1", "doctrine/doctrine-fixtures-bundle": "^2.3", "phpoffice/phpexcel": "^1.8", "foolz/sphinxql-query-builder": "^1.1", "hirak/prestissimo": "^0.3.4", "roave/security-advisories": "dev-master"

не один из этих

Salavat
12.02.2017
12:53:14
в lock их нет

лок удалял - пользы не принесло

Sergey
12.02.2017
12:53:33
может они в dev зависимостях?

Salavat
12.02.2017
12:53:46
Нет, в require

Да у меня часть из них стабильно используемые

блин

Aleksey
12.02.2017
12:54:47
ты запускаешь composer install?

Salavat
12.02.2017
12:55:50
Нет.

Но я нашел причину

я тупица )

Aleksey
12.02.2017
12:56:11
=)

Salavat
12.02.2017
12:56:31
Открыл консоль - папку project А в другой консоли переименовал ее в old_project и создал новую - project

Aleksey
12.02.2017
12:56:53
ну да, так не получится

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