Контакты
Местоположение
Россия, Санкт-Петербург и область, Санкт-Петербург

Наибольший вклад в теги

Все теги (14)

Лучшие ответы пользователя

Все ответы (17)
  • 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 комментарий
  • Как вернуть мотивацию к обучению?

    niremizov
    @niremizov
    CEO, предприниматель
    0) Выспаться, хорошо покушать (можно и не полезной пищи, главное чтобы хотелось), отвлечься и вообще забыть про мотивацию как таковую (Да, да можно побыть полным Г ). - И это все на месяц, хотя из такого состояния можно выйти уже и на следующий день, но настрой должен быть такой .

    1) Поставить перед собой материальную цель. (Машина, квартира, самолет, вертолет, семья, дети и все это через 5 лет, в этому году машина)

    2) Профессиональная, стать профессионалом в JS. Желательно подкрепить это чем-то, например получить повышение.

    3) Высшая. Ну и первые 2 цели, нужны для достижения высшей - разработки искусственного интеллекта, который уничтожит все человечество.

    У меня поставить / проработать все эти цели не получилось. Но даже попытка упорядочить все эти вещи дает направленность / заряженность.
    Ответ написан
    Комментировать
  • Как настроить cron для запуска php скрипта?

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

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

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

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

    niremizov
    @niremizov
    CEO, предприниматель
    Комментировать
  • Ограничение попыток восстановления пароля Друпал 7?

    niremizov
    @niremizov
    CEO, предприниматель
    Да, в Drupal 7 такой настройки нет и модуля тоже, но есть патч или можно сделать свой модуль.

    1) Патч https://www.drupal.org/project/drupal/issues/3074666
    1.1) После применения патча добавляем в самый конец файла /sites/default/settings.php строку, в которой указываем кол-во допустимых попыток:

    $conf['user_pass_reset_user_limit'] = 3;

    2) Свой модуль
    2.1) Подготавливаем файлы для своего модуля xandeadx.ru/blog/drupal/256
    2.2) Добавляем ограничение на форму восстановления пароля. Код можно взять отсюда https://www.drupal.org/project/drupal/issues/1681832

    // xyz - название Вашего модуля
    function xyz_user_pass_form_validate($form, $form_state){
      // Тут 3 - это кол-во допустимых запросов за 86400 секунд.
      if(!flood_is_allowed('request new password', 3, 86400, $form_state['values']['name'])){
        form_set_error('name', 'Reset password limit exceeded.  Please contact technical support for further assistance.');
    	flood_register_event('request new password', 86400, $form_state['values']['name']);
      } else {
        flood_register_event('request new password', 86400, $form_state['values']['name']);
      }
    }
    
    hook_form_user_pass_alter($form){
      array_unshift($form['#validate'], 'xyz_user_pass_form_validate');
    }
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (2)