Рубрика: blog

  • Laravel 5.8: как скопировать значения из старой колонки в новую во время миграции?

    Ситуация: во время разработки проекта на Laravel возникла необходимость заменить один столбец другим. Для этого нужно написать миграцию.

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

    Решение: очень простое и очевидное — изменить схему, записать значения, изменить схему. Далее привожу пример готовой заготовки миграции:

    Посмотреть миграцию
  • Fancybox 1.3.4 не работает с jQuery 1.9.0 и выше. Как исправить?

    Ситуация: В проекте использовался jQuery 1.8.3 и Fancybox 1.3.4.

    Проблема: Fancybox перестал работать после апдейта jQuery до версии 1.12.4. В консоли браузера была ошибка:

    fancybox() is not a function  
    Решение
  • 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

    Шпаргалка: 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
    Я считаю так. Чтобы выполнить задачу по сабжу, особо можешь не заморачиваться — главное понимать что происходит в целом. Но фундаментальное понимание сути этих команд будет только в плюс. Здесь же я собрал универсальный рецепт как поднять и восстановить репликацию. Поехали. (далее…)
  • Мои алиасы git

    Мои алиасы git

    Привет.

    В своей работе и pet-проектах я всегда использую git. За годы работы с ним у меня накопился некоторый список частых команд, которые я использую чаще всего. Позже я оформил их в алиасы и теперь представляю здесь. Их довольно много, они большей части он просты, и тем круты. Авось тебе тоже чего полезного пригодится.

    В сети есть много материалов по этой теме и многие разработчики показывают список алиасов и команд, которые им приходится использовать. Из наиболее интересных — вот эти три. При составлении конкретно этоого списка использовался собственный опыт и прочие чужие материалы, включая эти три статьи. Скопируй себе и обращайся к git aliases в качестве подсказки.

    Посмотреть алиасы
  • Переезд на WordPress

    Переезд на WordPress

    Привет.

    Я тут давеча зашёл на свой старый blogger, чтобы опубликовтаь заметку про Sphinx, и понял — хватит с меня. Проведя на этой площадке около 7 лет, я заметил как сильно она меняется. Изменения были колоссальными, но чисто внешними, косметическими.

    Используя те средства управления, которые там есть, нельзя оформить блог как хочешь. Т.е. технически это можно, но на самом деле намного проще купить VPS, поднять весь софт, wordpress, завести инструменты для веб-мастеров яндекса и гугла, чем попытаться заверстать блог на blogger.

    Да, есть плюшки в виде интеграции с adsense, analytics, webmaster и вот этого всего, но когда речь идёт об удостве публикации — нет, увольте. Это какое-то безумие.  (далее…)

  • Как исправить ошибки при работе с Sphinx 3.0.3 и выше (с самого начала)

    Привет.

    Я тут на днях оформлял вики для корпоративного репозитория на тему правильного поднятия сфинкса и что делать при ошибках. Я не буду вдаваться в детали настройки, этого полно в сети и документации. Привожу общий порядок действий для установки и небольшой список самых распространённых проблем с их решениями.

    Допустим, что у нас есть сервер, на который ранее не устанавливался sphinx, и мы хотим поставить версию 3.0.3 или выше.

    Все манипуляции могут производиться любым системным пользователем (если не указано иное). В нашем примере мы сидим под пользователем user. (далее…)