Ответы пользователя по тегу PHP
  • Как настроить cron для запуска php скрипта?

    niremizov
    @niremizov
    CEO, предприниматель
    $_SERVER['DOCUMENT_ROOT']:

    * при запуске через крон/консоль (cli) - пустая
    * при запуске через веб сервер - содержит путь к корневой директории сервера (видимо в Вашем случае это /usr/bin/php /var/www/user/data/www/domain/)
    * подробнее тут

    Для получения текущей директории можно использовать:

    * __DIR__ - возвращает путь к текущему файлу (скрипту)
    * getcwd() - возвращает текущую рабочую директорию
    * подробнее о разнице между способами тут
    Ответ написан
    Комментировать
  • Почему не получается запустить приложение через docker?

    niremizov
    @niremizov
    CEO, предприниматель
    php -S localhost:8080 -t public/ - запускает PHP сервер внутри контейнера, который слушает 8080 на внутреннем интерфейсе (localhost), а Ваши запросы приходят с внешнего интерфейса (172.17.0.2). Подробнее тут:
    https://pythonspeed.com/articles/docker-connection...

    Необходимо, что встроенный PHP сервер слушал порт со всех интерфейсов, для этого можно изменить команду вот так: CMD ["php", "-S", "0.0.0.0:8080", "-t", "public/"]

    PS: Похожий вопрос так же обсуждался здесь https://github.com/symfony/cli/issues/128#issuecom...
    Ответ написан
  • If с проверкой присвоения - приемлемо?

    niremizov
    @niremizov
    CEO, предприниматель
    1) Часто при написании условий легко спутать = и ==. В данном случае стороннему разработчику придется понять, что это НЕ опечатка. Даже стандарт сделали, чтобы избежать таких ошибок, используется в Symfony, называется Yoda Conditions. https://en.wikipedia.org/wiki/Yoda_conditions#Erro...
    2) Читать другому разработчику такую конструкцию не удобно, т.к. обычно ожидаешь в условии увидеть какое-то сравнение. А сейчас требуется разобраться, что мы одновременно присваиваем и делаем проверку.

    Исходя из пунктов выше, я бы не рекомендовал использовать такие конструкции.
    Альтернатива, сделать присвоение перед условием явно:

    public static function get($id)
    {
        $user_bank = self::findOneBy('`user_id` = ?', [$id]);
        if (!$user_bank) {
            $user_bank = new self();
            $user_bank->user_id = $id;
            $user_bank->deposit = 0;
            $user_bank->deposit_sum = 0;
            $user_bank->percent = 10;
            $user_bank->exchange_sum = 0;
            $user_bank->save();
        } 
        return $user_bank;
    }


    PS: Но в итоге ответ зависит от того, что для Вас значит "приемлемо":

    * значит, что понятно другому разработчику? - В общем случае не приемлемо. В случае договоренности (стандартам) в команде/на проекте, приемлемо.
    * значит что код, просто работает? - приемлемо.

    PPS: Похожий вопрос на англ. языке https://stackoverflow.com/questions/2576571/assign...
    Ответ написан
    1 комментарий
  • Ярлыки в Drupal?

    niremizov
    @niremizov
    CEO, предприниматель
    1. Добавить поле 'Новинка' или 'Акция' (чек бокс) к Типу Материала "Товар".
    2. Темизировать вывода товара:
    2.1. Страница товара: Поместить шаблон оформления страницы товара (node--product.tpl.php) в свою тему оформления и в зависимости от статуса чек бокса (из пункта 1) выводить или не выводить Ваши ярлыки.
    2.2. Страницы Views: Добавить в вывод поле из п.1, далее изменить css Вашей темы оформления для преобразования этого поля в ярлык.
    Ответ написан
    Комментировать