Skip to content

Instantly share code, notes, and snippets.

@anthonyaxenov
anthonyaxenov / DiskSpace.php
Last active August 7, 2020 15:23
[PHP] Простой класс для получения данных о пространстве на диске
<?
/**
* Простой класс для получения данных о пространстве на диске, разделе, в директории
* Может работать некорректно на shared-хостингах и при попытке получить данные
* о корневом разделе.
*/
class DiskSpace
{
/**
@anthonyaxenov
anthonyaxenov / install-zint.md
Last active January 23, 2020 09:24
How to install zint in Ubuntu 18.04
@anthonyaxenov
anthonyaxenov / is_cli.php
Created August 7, 2020 14:07
[PHP] Проверить запущен ли скрипт из терминала
/**
* Определяет запущен ли скрипт через php-cli
* Checks if script running under php-cli
*
* @return bool
*/
function is_cli(): bool
{
return PHP_SAPI === 'cli'
|| (!isset($_SERVER['DOCUMENT_ROOT']) && !isset($_SERVER['REQUEST_URI']));
@anthonyaxenov
anthonyaxenov / AMI.php
Last active August 7, 2020 15:19
[PHP] Работа с Asterisk по протоколу AMI (Yeastar TG400)
<?php
/**
* Класс для работы с Asterisk по протоколу AMI через сокет.
* Реализовано: подключение, авторизация, отправка команд, отправка СМС, отключение.
* Успешно работало на проде в связке с Yeastar TG400.
*
* Class to work with Asterisk gateway throuth AMI protocol via socket.
* Features: connection, authorization, send commands, send SMS, disconnect.
* Successfully used in production with Yeastar TG400.
@anthonyaxenov
anthonyaxenov / php_syntax.php
Created August 8, 2020 16:28
[PHP] Функции для проверки php-синтаксиса
<?php
/**
* Проверяет корректность синтаксиса php-файла
*
* @param string $filepath Путь к файлу
* @param int $exitcode Код выхода процесса php
* @return array Массив строк результата
*/
function php_syntax_file(string $filepath, int &$exitcode = 0): array {
@anthonyaxenov
anthonyaxenov / zsh-fancify.sh
Last active May 13, 2022 15:58 — forked from AlexZeitler/setup-oh-my-zsh-powerlevel9k.sh
Installing zsh / oh-my-zsh / Powerlevel10k on Ubuntu 20.04
#!/bin/bash
# Based on:
# https://github.com/Powerlevel9k/powerlevel9k/wiki/Install-Instructions
# https://github.com/ohmyzsh/ohmyzsh
# https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation
# https://gist.github.com/dogrocker/1efb8fd9427779c827058f873b94df95
# https://linuxhint.com/install_zsh_shell_ubuntu_1804/
echo "*********************************************"
echo " zsh fancifier"
@anthonyaxenov
anthonyaxenov / decode.php
Last active September 23, 2020 10:27
[PHP] Simple equivalent of Oracle's decode()
<?php
/**
* Simple php equivalent of Oracle's decode()
*
* It can be used as simple oneline-alternative to switch or if operators in many
* cases without difficult logic. For example, get string mnemocode of some value:
*
* echo 'State: '.decode($state, 0, 'disabled', 1, 'enabled', 'unknown');
*
@anthonyaxenov
anthonyaxenov / coalesce.php
Created September 23, 2020 10:14
[PHP] Simple equivalent of Oracle's coalesce()
<?php
/**
* Simple php equivalent of Oracle's coalesce()
*
* It can be used as simple oneline-alternative to switch or if operators in many
* cases without difficult logic. For example, get first non-empty value from bunch of vars:
*
* echo coalesce($var1, $var2, $var3, ...);
*
@anthonyaxenov
anthonyaxenov / menu.php
Created October 13, 2020 11:00
[PHP] Пример рекурсивного вывода меню
<?php
$nav = [
[
'name' => 'Home',
'title' => 'Homepage',
// ...something else...
'sub' => [
[
'name' => 'sub11',
'title' => null,
@anthonyaxenov
anthonyaxenov / stacktrace.sh
Last active June 28, 2023 14:10 — forked from akostadinov/stack_trace.sh
[SHELL] Print stacktrace
# Original: https://gist.github.com/akostadinov/33bb2606afe1b334169dfbf202991d36
# The difference is that this func outputs stacktrace in reverse order (from top level to lower ones)
function print_stacktrace () {
STACK=""
local i
local stack_size=${#FUNCNAME[@]}
echo "Stacktrace:"
# skip this function and "MAIN non_file_source:0"
for (( i=$stack_size-1; i>=1; i-- )); do
local func="${FUNCNAME[$i]}"