Задать вопрос
  • Symfony Process Component - не стартует command на продуктивной машине, как исправить?

    @dzhebrak
    Возможно, на production запрещены функции вроде proc_open, которые использует Symfony Process. Проверить можно так:
    php -i | fgrep -i 'disable_functions'
    Если в выводе будет proc_open, значит вызов этой функции запрещен в php.ini
    Ответ написан
    Комментировать
  • Не работают очереди на Laravel через Supervisor. В чем м.б. проблема?

    @dzhebrak
    Попробуйте в composer.json добавить пакет "symfony/translation": "4.3.8" и сделать composer update

    https://github.com/laravel/framework/issues/30655#...
    Ответ написан
    Комментировать
  • Как сделать сохранение коллекции с учетом сортировки?

    @dzhebrak
    Если я правильно понял Ваш вопрос, то в дочерней сущности (для которой в форме используете TextType::class) можно сделать дополнительное поле вроде position, затем отсортировать эти дочерние сущности по нему.
    Ответ написан
  • Как организовать таблицы в бд?

    @dzhebrak
    Есть несколько основных вариантов реализации:

    1. как Вы указали: одна таблица, неиспользуемые поля делать null. Это паттерн Single Table Inheritance. Работает хорошо, если типов и дополнительных полей будет немного.

    2. одна таблица для общих свойств (имя, фамилия, емаил, пароль), вторая для преподавателей, третья для администраторов. У второй и третьей необходимые им поля. Это паттерн Multiple/Class Table Inheritance. Достаточно гибкий вариант, но необходимо будет использовать join.

    Вот здесь есть несколько примеров https://romaricdrigon.github.io/2019/06/11/doctrin...
    Ответ написан
    Комментировать
  • Как это записать?

    @dzhebrak
    ul>li{$}>ul>li{$@2}>ul>li{$@3}>ul>li{$@4}>ul>li{$@5}

    $ - номер элемента
    $@2 - номер элемента, отсчет начинается с 2
    https://docs.emmet.io/abbreviations/syntax/#changi...
    Ответ написан
    Комментировать
  • Как спарсить даты в формат datetime в Pandas?

    @dzhebrak
    Можно сразу при чтении файла:

    from datetime import datetime
    
    dateparser = lambda x: datetime.strptime(x, "%m/%d/%y %H:%M")
    
    df = pd.read_csv('filename.csv', parse_dates = ['Order Date'], date_parser=dateparser)

    Также поправил формат, чтобы совпадал с данными в колонке
    Ответ написан
    Комментировать
  • Symfony 3, один сервис, несколько репозиториев, как прописать в services.yml?

    @dzhebrak
    Проверьте, чтобы в методе getRepository() указывался Entity, а не название репозитория. Например,:
    $a = $this->em->getRepository('AppBundle:Entity1')->findAll();
    # или
    $a = $this->em->getRepository(Entity1::class)->findAll();
    Ответ написан
    Комментировать
  • Проверка подключения файла?

    @dzhebrak
    Еще один часто используемый способ - в index.php (точка входа) объявить константу, например,:

    define('INDEX_LOADED', true);

    а в других файлах (подключаемых) добавить проверку:
    if(!defined("INDEX_LOADED")) {
    	die('Inсlude only');
    }

    Или можно вынести подключаемые файлы за webroot.
    Ответ написан
    Комментировать
  • Можно ли в доктрине создать вычисляемое поле?

    @dzhebrak
    Если у платежа будет небольшое количество комиссий (т.е. не будет падать из-за memory_limit), то проще всего в сущности Платеж сделать метод, в котором вручную посчитать сумму его комиссий.

    Минус в том, что если нужно будет на одной странице показать много платежей, то доктрине для каждого из них будет необходимо загрузить комиссии, а значит для каждого будет отдельный запрос в бд. Чтобы этого избежать, нужно в репозитории сущности Платеж добавить метод, в котором вернуть все необходимые платежи, сделав при этом join комиссий ( https://www.doctrine-project.org/projects/doctrine... ). Например:

    this->createQueryBuilder('p')->addSelect('c')->leftJoin('p.comissions', 'c')->getQuery()->getResult();

    p - альяс для сущности Платеж,
    c - альяс для сущности Комиссия

    Если же комиссий много, и высчитывать в памяти не вариант, то остается использовать DQL в репозитории сущности Платеж https://www.doctrine-project.org/projects/doctrine...
    Ответ написан
  • Standalone Система задач для одного разработчика?

    @dzhebrak
    Рекомендую попробовать Kanboard https://kanboard.org

    По вашим критерям:

    - для каждой задачи можно указывать планируемое и фактически затраченное время (как сразу, так и рассчитать с помощью счетчиков)
    - есть возможность настраивать (и создавать свои) связи между задачами (например, blocks|is blocked by; is a child of|is a parent of). С помощью плагина можно отобразить диаграмму Ганта https://github.com/kanboard/plugin-gantt , но у меня она не прижилась.
    - есть возможность создавать проекты (аналог доски в trello), при этом каждый проект можно настроить отдельно
    - есть возможность смотреть отчеты о работе, например, "Task Distribution (By Column)", "Cumulative Flow Diagram", "Burn Down Chart", "Average Time Spent Into Each Column", "Average Lead and Cycle time"
    - функционала, на мой взгляд, достаточно, и в тоже время автор проекта не хочет делать из проекта комбайн на все случаи жизни. Есть api, и можно писать свои плагины, если чего-то не хватает.
    - открытый исходный код https://github.com/kanboard/kanboard . Проект написан на PHP, регулярно обновляется.

    В документации https://docs.kanboard.org/en/latest/user_guide/ind... можно посмотреть другой функционал. Дизайн изначально не самый привлекательный, но подкорректировать его достаточно просто, и к тому же на github есть готовые темы.

    PS. Если будете устанавливать, то лучше сразу используйте mysql или postgresql, а не sqlite, т.к. на последней не поддерживается (самой базой данных, т.е. это не проблема проекта) некоторый функционал (например, не работает регистронезависимый поиск).
    Ответ написан
    Комментировать
  • Какие решения вы знаете для использования браузером без мышки?

    @dzhebrak
    Tridactyl под Firefox
    https://github.com/tridactyl/tridactyl
    Ответ написан
    Комментировать
  • Manjaro на рабочем десктопе?

    @dzhebrak
    Я не использую Manjaro, но также рассматривал этот дистрибутив.

    На их форуме есть раздел с анонсами обновлений (https://forum.manjaro.org/c/announcements/stable-u... - для стабильной ветки), и в конце каждого анонса есть опрос для пользователей, как прошло обновление. Обычно никаких проблем не возникает у 93-95% пользователей (при выборке в 200-450 пользователей), у 2-4% - незначительные проблемы, которые они решили самостоятельно, и 2-3% необходима помощь сообщества.

    Однако периодически бывают обновления, при которых с проблемами сталкиваются 20-40% пользователей. Чтобы минимизировать этот риск (исключить полностью, к сожалению, нельзя), необходимо перед обновлением читать анонсы на форуме - там обычно указываются возможные проблемы и варианты их решений. Такова плата за возможность использовать самый свежий софт :-)
    Ответ написан
    1 комментарий
  • Можно ли как-то "арендовать" зарубежное ИП и принимать оплату на него от зарубежных фирм?

    @dzhebrak
    Возможно, вам подойдет какой-нибудь бизнес-инкубатор, например, https://mojafirma.org/inkubator
    Ответ написан
    Комментировать
  • Best practices в именовании классов, методов и переменных?

    @dzhebrak
    Может есть какой-то сервис/рейтинг популярных слов (прилагательных, существительных) для нейминга, чтобы пополнить словарный запас?

    source-code-wordle.de
    https://onym.co/
    Ответ написан
    Комментировать
  • Что подойдет для организации личных задач/проектов/контактов/файлов?

    @dzhebrak
    Посмотрите https://kanboard.net/.

    Задачи организуются в списки (например, "Входящие", "Следующие", "В работе", "Тестирование", "Сделано", "Архив" - задаете сами), списки в проекты.
    К каждой задаче можно добавлять описание, файлы, прикреплять скриншоты, ссылки (как внешние, так и на внутренние задачи), добавлять комментарии, подзадачи, связывать с другими задачи ("Child Of", "Blocked by", "Fixes" и т.д.), выставлять приоритеты, сроки и т.д..
    Контакты заказчика и какую-то дополнительную информацию по проекту можно указывать в описании проекта. Есть дашборды для проектов + удобная фильтрация задач.
    Ответ написан
    Комментировать
  • Программа для ведения дневника?

    @dzhebrak
    Очень удобен Zim со стандартными модулями "Дневник" и "Метки".
    537c606acc8a4cfe8ca391a47c66eca8.png
    Жирным выделяются те даты, когда были добавлены записи в дневник.

    Можно сразу добавлять задачи и подзадачи (с указанием дедлайнов), при этом задачи можно просмотреть отдельно от дневника (модуль "Список задач").
    Вот текст на странице дневника:

    c0bebecd14a04029838ceb78d0be415a.png
    А вот эти же задачи в списке задач (собираются автоматически из текста записи в дневнике):
    8e438cfca41c494c8949a838c585d1f6.png
    Можно вставлять ссылки на сайты, другие записи дневника, файлы на компьютере, прикреплять файлы, вставлять изображения в текст и т.д..

    Это далеко не весь функционал - посмотрите возможности на сайте программы.
    Ответ написан
    Комментировать