• PhpStorm 2017+: некорректные цвета файлов на панели Project

    Ситуация: в IDE была установлена тема Material Theme. После первого взгляда стало понятно, что с ней будет трудно жить, поэтому тема была удалена.

    Проблема: цвета файлов на панели Project остались некорректными (теми, что были установлены при настройке темы).

    Решение
  • Битрикс: как разлогинить любого заблокированного пользователя. 100% рабочий метод.

    Быстрая заметка.

    Гуглил сабж — все великие умы сообщества в каком-то диком ступоре, агонии, ужасе, не понимают как быть. Есть ещё какой-то нахер ненужный модуль. Вроде бы такой функционал из коробки не завезли до сих пор.

    Ситуация: в битриксе работает агент, который периодически блокирует пользователей по определённым критериям.

    Задача: заблокированные пользователи, если они были авторизованы в момент блокировки, должны быть сразу разлогинены.

    Решение: проверять флаг активности текущего пользователя и перенаправлять на адрес логаута в публичной части.

    Описание: (далее…)

  • Как настроить удалённую отладку xDebug + phpStorm

    Привет.

    Эта тема изжёвана-пережёвана на мульён раз. Но иногда всё-таки забываю этот простой алгоритм действий, ибо я к этому вопросу не возвращаюсь, однажды настроив что надо. Поэтому в голове достоверно ничего не откладывается.

    Посему решено опубликовать заметку здессь, чтобы потом точно знать где её искать. Тут просто выжимка самой сути, а не пошаговая инструкция. Но ссылки на таковые я оставлю в конце. (далее…)

  • Phalcon + Volt: вставить GET-параметр в ссылку на именованный маршрут через link_to()

    Имеем маршрут:

    $adminRouteGroup
    ->add('/files/delete?id=:int', [
        'controller' => 'files',
        'action' => 'delete',
        'id' => 1,
    ])
    ->setName('file_delete');

    Хотим в Volt-шаблоне получить ссылку типа такой:

    http://example.com/files/delete?id=123

    Для этого в шаблоне пишем:

    {{ link_to(['for':'file_delete', 'id':123], 'Удалить', 'class':'btn btn-danger btn-sm', 'id':'del_btn') }}

    Разберём пример:

    [
      'for':'file_delete' — для этого маршрута
      'id':123 — имя GET-параметра, объявленного в маршруте, и его значение
    ]
    'Удалить' — текст на ссылке
    'class':'btn btn-danger btn-sm' — html-атрибут class
    'id':'del_btn' — html-атрибут id

    Когда встала такая задача, быстро наткнулся на эту ветку: stackoverflow.com. На деле всё оказалось сильно проще.

    Phalcon 3.4.1

  • Шпаргалка: Master-slave репликация MySQL 5.7

    Введение

    Это мой рецепт, который я использую на проектах. В сети можно найти разные другие инструкции. Но они различаются только командами, которые по сути своей выполняют одно и то же. Например, чтобы заблокировать запись в БД, можно использовать как эти команды:
    SET GLOBAL read_only = ON;  # вкл только чтение
    SET GLOBAL read_only = OFF; # выкл только чтение
    так и эти:
    FLUSH TABLES WITH READ LOCK; # вкл только чтение
    UNLOCK TABLES; # выкл только чтение
    Либо импортирование БД из дампа на слейве можно выполнить и так:
    $ mysql -u root -p
    > USE mydb;
    > SOURCE ~/mydb.sql
    и эдак:
    $ mysql -u root -p mydb < mydb.sql
    Я считаю так. Чтобы выполнить задачу по сабжу, особо можешь не заморачиваться — главное понимать что происходит в целом. Но фундаментальное понимание сути этих команд будет только в плюс. Здесь же я собрал универсальный рецепт как поднять и восстановить репликацию. Поехали. (далее…)