U_mulder
17.10.2018
15:50:03
еще можно создать новый DateTime из даты. Если создался - дата правильная.
Yuri
17.10.2018
15:50:17
https://coder-booster.ru/learning/php-practice/checking-the-existence-of-a-date
там ошибка не вылетит?
Google
U_mulder
17.10.2018
15:51:52
ну вон в createFromFormat не вылетит
а с конcтруктором да, будет Exception
Андрей
17.10.2018
15:58:18
еще можно создать новый DateTime из даты. Если создался - дата правильная.
так оно вроде и так создается, только что проверял. Прописал 31 02 2016, но вот после переобразования в format("Y-m-d") вышло 03 03 2016.
Вот теперь думаю сравнивать эти два значения, и если они не одинаковые выводить пользователю ошибоку о неправильной дате и предлагать заменить на правильную.
Это нормальный вариант, или "плохой\неправильный"?)
Василий
17.10.2018
15:59:17
Поставь js календарь
U_mulder
17.10.2018
16:01:52
если дата записывается в поле БД то есть валидаторы
Андрей
17.10.2018
16:02:27
ну по идеи же дату лучше хранить в unix?
Yuri
17.10.2018
16:09:40
ну по идеи же дату лучше хранить в unix?
в Symfony принято хранить в DateTime. Но в unix тоже можно, что для скорости выборки по датам лучше, но когда наступит конец unix timestamp будут проблемы (https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_2038_%D0%B3%D0%BE%D0%B4%D0%B0)
Андрей
17.10.2018
16:10:12
окей, спасибо)
про проблему знаю
Serezha
17.10.2018
16:25:42
unix timestamp из 32 плавно перепилят в 64 бита и не будет никаких проблем, имхо
Про скорость выборки не ручаюсь, но скорее наоборот. Все timestamp-ы надо еще привести к рабочему временному поясу при выборке и расчетах
Yuri
17.10.2018
16:34:24
с точки зрения int WS string - int быстрее, с точки зрения удобства дальнейшей работы, тут да соглашусь
по крайней мере в MySQL
но думаю pgsql далеко не ушел в этом отношении (не тестил)
Google
Terminator
18.10.2018
21:20:58
Roman будет жить. Поприветствуем!
Андрей
19.10.2018
03:10:36
Есть кто?)
Кирилл
19.10.2018
05:20:38
Я
Андрей
19.10.2018
14:34:43
Помогите, пожалуйста, с выводом с бд.
Есть две таблицы: Positions и Employee. В таблице Employee есть поле position, которое содержит id из Positions. То есть получается связь 1 ко многим.
Делаю вывод employee
$em = $this->get('doctrine.orm.entity_manager');
$dql = "SELECT e FROM AppBundle:Employee e";
$query = $em->createQuery($dql);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query, /* query NOT result */
$request->query->getInt('page', 2)/*page number*/,
3/*limit per page*/
);
Как мне отредактировать запрос, чтобы возвращалось name из Positions, которое соответствует employee.position = positions.id
Alexander
19.10.2018
15:16:24
Связь в entity настрой, ну или join в помощь
Андрей
19.10.2018
15:30:20
я настроил связь, когда указывал структуры таблицы
а как с join? я пытался сделать по документации dql, не вышло
Anton ?
20.10.2018
16:40:58
привет. подскажите, можно ли в entity добавить виртуальное поле которое будет расчитываться в реалтайме? и нужно чтобы оно отображалось при сериализации объекта
Александр
20.10.2018
18:02:54
Anton ?
20.10.2018
19:21:44
* @JMS\VirtualProperty
* @JMS\SerializedName("param")
а теперь сложнее. нужно в этот геттер прокидывать параметр из конфига во время сериализации ?
Александр
20.10.2018
20:44:06
А, у тебя jms
Напиши кастомный нормалайзер
Terminator
21.10.2018
17:24:40
@BlackArray будет жить. Поприветствуем!
Андрей
24.10.2018
11:28:50
Можете скинуть годные статьи о контроллерах и распределении ответственности?
Yuri
24.10.2018
11:29:38
почитай про SOLID - это про ответственность
по Symfony загугли best practices
в доке много рекомендаций тоже
Андрей
24.10.2018
11:31:30
Спасибо, прочитаю
Terminator
25.10.2018
09:38:05
@zubovaleksey будет жить. Поприветствуем!
@rainlikespb будет жить. Поприветствуем!
Google
Terminator
25.10.2018
14:39:49
@btexnikus будет жить. Поприветствуем!
Bogdan
25.10.2018
14:40:22
Всем привет.) Извиняюсь, за может быть глупый вопрос, но кто то пробовал адаптировать Symfony 1.4 к версии php 5.6?
Serhii
25.10.2018
14:53:32
1.4?
dypa
25.10.2018
15:08:50
я бы сразу на 7ку бы залезал, 5.6 уже не поддерживается
а в чем проблема то?
Yuri
25.10.2018
15:09:53
dypa
25.10.2018
15:12:18
Yuri
25.10.2018
15:14:15
ник прикольный на аве у тебя
да просто чтоб жить проще было
Bogdan
25.10.2018
15:25:13
Да, 1.4. Есть просто довольно много старых проектов, которые работают на 1.4, а переносить их на новую версию мне нафиг не надо.) Клиенты мне это не будут оплачивать.) Просто поднимать на сервере версию 5.3 не хочу, это геморрно.
dypa
25.10.2018
15:31:08
Bogdan
25.10.2018
15:37:32
dypa
25.10.2018
15:38:51
в README.md есть Installation
Bogdan
25.10.2018
15:44:32
было б все так просто)
Admin
Bogdan
25.10.2018
15:44:44
Grigoriy
25.10.2018
15:47:48
привет, можете подсказать архитектурное решение на классах
фрейм в роутере не поддерживает паттернов со знаком вопроса и требует создавать отдельный роут если к странице прилепляется например язык /en/ спереди или страница /page/2/
и получается в модуле построения адресов возникает необходимость построить ссылку для того или другого в разных ситуациях. ссылка строится с использованием имени роута, которое ему даешь при создании. особенно когда речь идет о странице на конкретном языке - тебе нужно получить роут без языка и с языком, проверить - есть ли они, и если нужный есть выбрать его и дальше уже с ним работать
одинаковые имена не допускаются поэтому к роуту присабачиваю -lang или -page соответственно
в итоге возникает путаница когда пишешь методы getNameNoLang() и getNameNoPage() - я делаю вывод что архитектурно это решается не так. есть какой-нибудь паттерн, который в таких случаях применяют?
или просто подскажите как мыслить вообще
может быть нужно в роуте написать методы клонирования, которые будут оставлять ссылку на соседние элементы, чтобы потом дергать их по ссылке и брать оттуда имя?
Yuri
25.10.2018
15:58:56
composer require твой пакет --ignore-platform-reqs
но придется ручками в vendor поправить либу под твою версию пыха
Google
Yuri
25.10.2018
16:01:51
Grigoriy
25.10.2018
16:39:13
спасибо Андрею Дембицкому
подсказал идею сделать регистри по типам роутов и потом дергать если isset($registry[$type][$name])
Yuri
25.10.2018
18:41:06
ol
26.10.2018
08:37:28
Всем привет.
Кто параллельно с iOS и Android . Дружит ?
У кого есть время и хочет на серьёзным проектом поработать?)
Grigoriy
26.10.2018
14:06:55
вопрос возник - мне объяснили как делают контейнер с конфиг файлом и стало интересно почему ioc с его di->get() очень плох, можно услышать ваши мнения
типа по уму это на вход интерфейс, в конфиге описать что будет в переменной
и вообще не вызывать di->get() а просто new() или как там
какое преимущество это дает по сравнению с тем чтобы вызывать зависимости с помощью команд контейнеру там где они нужны?
Александр
26.10.2018
19:57:29
Grigoriy
26.10.2018
21:03:59
ммм а вообще да. получается нельзя запустить только одну функцию которую нужно тестить. нужно запускать весь фрейм иначе облом. а когда конфиг файл то создаешь экземпляр и контейнер из конфига сам создаст нужные сущности. блин сильно
я думал di->get это мощнейше
Александр
27.10.2018
00:48:48
Недавно публиковали deprecations в 4.2 версии, насколько я понял скоро нельзя будет вызывать сервисы прям из контроллера и инжектить их придется каким-то явным способом
Александр
27.10.2018
06:10:20
Terminator
27.10.2018
06:51:10
@BlackArray будет жить. Поприветствуем!
Иван
27.10.2018
06:51:37
Кто нить шарит как в боте реализован вопрос? Который вижу только я