ㅤ
Подскажите, пожалуйста, как можно узнать существует ли день? например, у меня есть дата 31 02 2019
Но ведь этого дня не существует
ㅤ
ну или переобразовать в норм формат, то есть 03 03 2019
Yuri
Yuri
может не нужно узнавать существует или нет ?
ㅤ
у меня в форме есть возможность выбрать дату 31 02 2019
как это ограничить я не нашел, так что решил просто проверять\переобразовывать. Сейчас читаю то, что Вы скинули, мб это решит мой вопрос
Yuri
ну так прикрути к форме календарь (js). Вроде там само оно просчитывается и пользователь не ошибется при выборе даты. Может я не прав конечно.
Yuri
или предполагаешь что в верстке поменяет в ручную ? и хочешь как-то обезопаситься
Yuri
?
Yuri
от чего только
Yuri
http://php.net/manual/ru/function.checkdate.php вот еще
Кирилл
еще можно создать новый DateTime из даты. Если создался - дата правильная.
Yuri
https://coder-booster.ru/learning/php-practice/checking-the-existence-of-a-date
Yuri
Yuri
там ошибка не вылетит?
Кирилл
ну вон в createFromFormat не вылетит
Кирилл
а с конcтруктором да, будет Exception
ㅤ
еще можно создать новый DateTime из даты. Если создался - дата правильная.
так оно вроде и так создается, только что проверял. Прописал 31 02 2016, но вот после переобразования в format("Y-m-d") вышло 03 03 2016.
Вот теперь думаю сравнивать эти два значения, и если они не одинаковые выводить пользователю ошибоку о неправильной дате и предлагать заменить на правильную.
Это нормальный вариант, или "плохой\неправильный"?)
💀
Поставь js календарь
Кирилл
если дата записывается в поле БД то есть валидаторы
ㅤ
ну по идеи же дату лучше хранить в unix?
Yuri
ну по идеи же дату лучше хранить в 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)
ㅤ
окей, спасибо)
ㅤ
про проблему знаю
Serezha
unix timestamp из 32 плавно перепилят в 64 бита и не будет никаких проблем, имхо
Serezha
Про скорость выборки не ручаюсь, но скорее наоборот. Все timestamp-ы надо еще привести к рабочему временному поясу при выборке и расчетах
Yuri
с точки зрения int WS string - int быстрее, с точки зрения удобства дальнейшей работы, тут да соглашусь
Yuri
по крайней мере в MySQL
но думаю pgsql далеко не ушел в этом отношении (не тестил)
Anonymous
Roman будет жить. Поприветствуем!
ㅤ
Есть кто?)
Кирилл
Я
ㅤ
Помогите, пожалуйста, с выводом с бд.
Есть две таблицы: 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
Связь в entity настрой, ну или join в помощь
ㅤ
я настроил связь, когда указывал структуры таблицы
ㅤ
а как с join? я пытался сделать по документации dql, не вышло
Anton 🐻
привет. подскажите, можно ли в entity добавить виртуальное поле которое будет расчитываться в реалтайме? и нужно чтобы оно отображалось при сериализации объекта
Alexander
Anton 🐻
* @JMS\VirtualProperty
* @JMS\SerializedName("param")
Anton 🐻
а теперь сложнее. нужно в этот геттер прокидывать параметр из конфига во время сериализации 😁
Alexander
А, у тебя jms
Alexander
Напиши кастомный нормалайзер
Anonymous
@BlackArray будет жить. Поприветствуем!
ㅤ
Можете скинуть годные статьи о контроллерах и распределении ответственности?
Yuri
почитай про SOLID - это про ответственность
по Symfony загугли best practices
Yuri
в доке много рекомендаций тоже
ㅤ
Спасибо, прочитаю
Anonymous
@zubovaleksey будет жить. Поприветствуем!
Anonymous
@rainlikespb будет жить. Поприветствуем!
Anonymous
@btexnikus будет жить. Поприветствуем!
Anonymous
Всем привет.) Извиняюсь, за может быть глупый вопрос, но кто то пробовал адаптировать Symfony 1.4 к версии php 5.6?
Serhii
1.4?
Nikolay
я бы сразу на 7ку бы залезал, 5.6 уже не поддерживается
Nikolay
а в чем проблема то?
Yuri
Nikolay
Yuri
ник прикольный на аве у тебя
Yuri
да просто чтоб жить проще было
Anonymous
Да, 1.4. Есть просто довольно много старых проектов, которые работают на 1.4, а переносить их на новую версию мне нафиг не надо.) Клиенты мне это не будут оплачивать.) Просто поднимать на сервере версию 5.3 не хочу, это геморрно.
Nikolay
Nikolay
в README.md есть Installation
Anonymous
было б все так просто)
Anonymous
Anonymous
привет, можете подсказать архитектурное решение на классах
фрейм в роутере не поддерживает паттернов со знаком вопроса и требует создавать отдельный роут если к странице прилепляется например язык /en/ спереди или страница /page/2/
и получается в модуле построения адресов возникает необходимость построить ссылку для того или другого в разных ситуациях. ссылка строится с использованием имени роута, которое ему даешь при создании. особенно когда речь идет о странице на конкретном языке - тебе нужно получить роут без языка и с языком, проверить - есть ли они, и если нужный есть выбрать его и дальше уже с ним работать
одинаковые имена не допускаются поэтому к роуту присабачиваю -lang или -page соответственно
в итоге возникает путаница когда пишешь методы getNameNoLang() и getNameNoPage() - я делаю вывод что архитектурно это решается не так. есть какой-нибудь паттерн, который в таких случаях применяют?
или просто подскажите как мыслить вообще
Anonymous
может быть нужно в роуте написать методы клонирования, которые будут оставлять ссылку на соседние элементы, чтобы потом дергать их по ссылке и брать оттуда имя?
Yuri
composer require твой пакет --ignore-platform-reqs
Yuri
но придется ручками в vendor поправить либу под твою версию пыха
Yuri
Yuri
Anonymous
Anonymous
спасибо Андрею Дембицкому
подсказал идею сделать регистри по типам роутов и потом дергать если isset($registry[$type][$name])
Yuri
Anonymous
Всем привет.
Anonymous
Кто параллельно с iOS и Android . Дружит ?
Anonymous
У кого есть время и хочет на серьёзным проектом поработать?)
Anonymous
вопрос возник - мне объяснили как делают контейнер с конфиг файлом и стало интересно почему ioc с его di->get() очень плох, можно услышать ваши мнения
Anonymous
типа по уму это на вход интерфейс, в конфиге описать что будет в переменной
Anonymous
и вообще не вызывать di->get() а просто new() или как там
Anonymous
какое преимущество это дает по сравнению с тем чтобы вызывать зависимости с помощью команд контейнеру там где они нужны?
Anonymous
ммм а вообще да. получается нельзя запустить только одну функцию которую нужно тестить. нужно запускать весь фрейм иначе облом. а когда конфиг файл то создаешь экземпляр и контейнер из конфига сам создаст нужные сущности. блин сильно