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

Привет.

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

Посему решено опубликовать заметку здессь, чтобы потом точно знать где её искать. Тут просто выжимка самой сути, а не пошаговая инструкция. Но ссылки на таковые я оставлю в конце. Читать далее Как настроить удалённую отладку 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

Я считаю так. Чтобы выполнить задачу по сабжу, особо можешь не заморачиваться — главное понимать что происходит в целом. Но фундаментальное понимание сути этих команд будет только в плюс.

Здесь же я собрал универсальный рецепт как поднять и восстановить репликацию. Поехали. Читать далее Шпаргалка: Master-slave репликация MySQL 5.7

Мои алиасы git

Привет.

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

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

Я разбил свой список по темам, чтобы было проще воспринимать.

Читать далее Мои алиасы git

Переезд на WordPress

Привет.

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

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

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

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

Привет.

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

Допустим, что у нас есть сервер, на который ранее не устанавливался sphinx, и мы хотим поставить версию 3.0.3 (на момент написания заметки это последняя стабильная).

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

Модуль интеграции Dreamkas для OpenCart 3.0.2.0

Доброго дня, читатель. Редко я захожу сюда, ещё реже что-то пишу. Сейчас один из тех случаев, когда я считаю, что это просто необходимо.

Введение

Те, кто сталкивался с сервисом Dreamkas (онлайн-кассы, фискализация чеков, сканеры, терминалы и вот это вот всё по 54-ФЗ), могут иметь интернет-магазин на базе OpenCart.

Дримкас предоставляет модули для интеграции с кучей CMS. Такие надстройки необходимы для отслеживания статусов фискализации чеков по заказу на сайте. Есть такой модуль и для OpenCart.

Читать далее Модуль интеграции Dreamkas для OpenCart 3.0.2.0

VK API: загрузка изображения на стену. Рабочий код на PHP7 + cURL

Публикую просто чтобы не потерялось.

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

Пока тут только серверная часть. Она большого труда не составляет.

Забудь всё, что ты видел о загрузке фотографий через curl. Я двое суток ебал мозги с целью выяснить почему я делаю так, как говорили когда-то и говорят до сих пор (например, про @ перед именем загружаемого файла, например, что уже неактуально для PHP >= 5.5)…. и почему при успешном запросе к серверу фотографий, ВК мне отдаёт пустой photo = []

Будем считать, что у тебя уже есть ID приложения и ты получил жизненно важный access_token. Конкретно в контексте данного поста не играет роли, является ли твоё приложение веб-сайтом или Stand-alone. Механизм на сервере один.

Наверняка ты уже заебался также, как и я, уже изучил документации, ответы сервера и всякое такое. Поэтому не буду рассказывать что будет происходить после каждого чиха.
Читать далее VK API: загрузка изображения на стену. Рабочий код на PHP7 + cURL

DavFS2. Куда утекает свободное место? Got error 28 from storage engine

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

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

Однажды утром, после свежего бекапа, MySQL стал падать с ошибкой:

Got error 28 from storage engine

Эта ошибка возникает во время выборки записей из БД. Поскольку выборка хранится в кеше на диске и в этот момент возникает ошибка, значит что-то с ним не так. Самое банальное — закончилось место. По факту так и оказалось. MySQL-у просто негде было хранить файлы кеша.

Но как? На сервере свежий бекап только один, и его размер несоизмеримо меньше, чем сейчас должно быть свободного места.
Начал поиски обжоры. Читать далее DavFS2. Куда утекает свободное место? Got error 28 from storage engine

Ностальгия. Как я погрузился в транс

Какое-то время я учился в УУИЖТ и работал там лаборантом. Приходил после учебного дня на рабочее место и просиживал за компом уже до конца дня рабочего. Взяли меня на полставки дизайнера, но в дизайне я ни бум-бум и успел только сверстать парой градиентов программку для ближайшей конференции и макет баннеров для абитуриентов, чтобы летом висели по городу.

Однажды, пришёл к нам новый человек на должность штатного дизайнера. Я был обычным лаборантом в местном IT-отделе и по совместительству типографии.

Я даже не помню уже как его зовут. Мы с ним сидели рядом и частенько говорили о всяком. Я рассказывал ему как хочу стать программистом, но какого-то ляда просиживаю сраку в железке. Он мне рассказывал как работать в Adobe InDesign и верстать буклеты. В то время в институте активно проходили всяческие конференции, соревнования и прочие подобные мероприятия городского и регионального масштабов, и требовались графические материалы для рекламы, мерча и всякого такого.
Читать далее Ностальгия. Как я погрузился в транс