Skip to content

Instantly share code, notes, and snippets.

@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 / DiskSpace.php
Last active August 7, 2020 15:23
[PHP] Простой класс для получения данных о пространстве на диске
<?
/**
* Простой класс для получения данных о пространстве на диске, разделе, в директории
* Может работать некорректно на shared-хостингах и при попытке получить данные
* о корневом разделе.
*/
class DiskSpace
{
/**
@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 / 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 / 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 / menu.php
Created October 13, 2020 11:00
[PHP] Пример рекурсивного вывода меню
<?php
$nav = [
[
'name' => 'Home',
'title' => 'Homepage',
// ...something else...
'sub' => [
[
'name' => 'sub11',
'title' => null,
@anthonyaxenov
anthonyaxenov / output.php
Last active December 24, 2021 13:10
[PHP] Simple and universal file logger
<?php
function output(...$data)
{
$result = [];
foreach ($data as $something) {
if ($something instanceof Illuminate\Support\Collection) {
$something = $something->toArray();
}
if (is_array($something)) {
$something = var_export($something, true);
@anthonyaxenov
anthonyaxenov / BasicTestCase.php
Last active January 21, 2022 05:52
[PHP] Useful phpunit asserts
<?php
declare(strict_types = 1);
namespace Tests;
use Illuminate\Support\Collection;
use PHPUnit\Framework\TestCase;
class BasicTestCase extends TestCase