Создание встраиваемых сценариев на языке Lua

В то время как интерпретируемые языки программирования, такие как Perl, Python, PHP и Ruby, пользуются все большей популярностью для Web-приложений (и уже давно предпочитаются для автоматизации задач по системному администрированию), компилируемые языки программирования, такие как C и C++, по-прежнему необходимы. Производительность компилируемых языков программирования остается несравнимой (она уступает только производительности […]

Как в PhpStorm обновить phpdoc и docblock

Допустим вы изменили сигнатуру функции или метода и PhpStorm стал подсвечивать docblock волнистой линией, намекая на то, что он не соответствует актуальной сигнатуре. И как быть, неужели править phpdoc ручками? К счастью, нет! Достаточно навести курсор на docblock и нажать комбинацию клавиш Alt + Enter для вызова меню Intention Actions. Как правило, […]

Как пишутся системы оплаты для сайта

Требуется написать систему оплаты для интернет-магазина (без посредников для каждого способа оплаты, т.е без робокассы, интеркассы и подобных сервисов). Из вариантов оплаты планируется visa, mastercard, yandex.money и webmoney. В качестве backend используется django (но это не так важно).

Как вывести текущий хэш коммита git-репозитория в приложении или на веб-сайте

Бывают ситуации, когда запиливаешь новый функционал или правишь старый, тестируешь — всё ок. А выкатываешь на продакшен — ничего не работает и вообще ощущение, будто изменения не накатились. Как быть уверенным, что на продакшене крутится именно тот код, который был на него залит? Одним из решений данной проблемы может стать […]

Как правильно читать файлы с помощью PHP

Одним из преимуществ работы с современными языками программирования, такими как PHP, является количество доступных возможностей. PHP легко мог бы присвоить девиз языка Perl, «Существует несколько способов сделать что-либо», особенно, когда речь идет об обработке файлов. Но при изобилии доступных средств, возникает вопрос, какое из них лучше для выполнения работы. Конечно, […]

Как в Linux просмотреть jpg изображение в консоли

Достаточно специфическая задача — посмотреть содержимое графического файла не выходя из консоли bash. Причём посмотреть не в виде текста, а в виде изображения. Один из вариантов решения — установить пакет caca-utils и воспользоваться утилитой cacaview: yum install caca-utils -y cacaview var/tmp/9036116903362_623752297389759.jpg Результат довольно специфичен, но зато быстро и лучше, чем ничего.

HttpKernelInterface в Symfony

Symfony знаменит благодаря своему HttpKernelInterface: namespace Symfony\Component\HttpKernel; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; interface HttpKernelInterface { const MASTER_REQUEST = 1; const SUB_REQUEST = 2; /** * @return Response */ public function handle( Request $request, $type = self::MASTER_REQUEST, $catch = true ); } Реализация этого интерфейса должна содержать один метод и с его […]

Книга один год с Symfony

Один год с Symfony. На самом деле, для меня это был даже не год, а почти 6 лет. Начинал я с symfony 1 (именно так, с маленькой буквы и отдельно стоящая единичка), потом продолжил с Symfony2. Symfony2 — это то, что можно охарактеризовать как «взрослый» фреймворк, с его помощью вы […]

Как в nginx отдавать ошибки в виде json

При разработке API часто бывает так, что абсолютно все ответы даже с непредвиденными ошибками нужно отдавать в json-формате. В плане PHP, ошибки и эксепшены перехватывать достаточно легко. А вот 500, 502, 504, 404 и прочие ошибки могут генерироваться уже не на стороне PHP, а на стороне веб-сервера, например, nginx. В […]

Как определить, выполняется ли текущая система в виртуальной машине?

Хороший вопрос — является ли Lnux-система реальной железкой или выполняется в виртуальной машине? Для этого можно проверить вывод команды dmesg. Также можно также использовать команду dmidecode, для получения информации из системного BIOS. Далее примеры выполнения команд в разных средах виртуализации. Как определить, что система запущена в внутри KVM? $ dmesg | grep -i virtual […]