Skip to content

Instantly share code, notes, and snippets.

View pavarov's full-sized avatar

Pavel Pivovarov pavarov

View GitHub Profile
@pavarov
pavarov / points_to_multipolygon.txt
Last active February 19, 2021 06:36
Postgis Postgresql convert points to multipolygon
SELECT ST_GeomFromText('MULTIPOLYGON(((xx.852621 xx.604293, xx.418503 xx.371307)))', 4326);
@pavarov
pavarov / git-api.txt
Created March 19, 2021 12:47
git api notes
create repo: curl -u login:token https://api.github.com/user/repos -d '{"name": "new-rep", "private": 'true}
delete repo: curl -X DELETE -H 'Authorization: token xxx' https://api.github.com/repos/ppivovarov/new-r
@pavarov
pavarov / CancelSoftDelete.php
Created April 13, 2021 13:25
Laravel. Cancel soft delete trait
<?php
declare(strict_types=1);
namespace App\Traits;
trait CancelSoftDelete
{
protected $forceDeleting = true;
public static function bootSoftDeletes(): void
@pavarov
pavarov / FileInfo.php
Created September 1, 2021 12:59
Wrapper over SplFileInfo. added getMimeContentType, getMimeType methods. Notice! throws a FIleNotFoundException (you should have this class).
<?php
namespace app\helpers;
use app\exceptions\FileNotFoundException;
use SplFileInfo;
/**
* Class FileInfo
*
<?php
public function getGUID(): string
{
if (function_exists('com_create_guid') === true) {
return trim(com_create_guid(), '{}');
}
return sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535));
}
@pavarov
pavarov / sleep.js
Created June 1, 2022 07:48
js sleep function
function sleep(ms: number) {
return new Promise(resolve => window.setTimeout(resolve, ms));
}
@pavarov
pavarov / errors_handler.php
Created June 22, 2022 05:26
handlers for uncaught errors and exceptions
<?php
declare(strict_types=1);
use App\Response;
set_exception_handler(static function (Throwable $ex) {
$msg = json_encode([
'error message' => $ex->getMessage(),
'error file' => str_replace($_SERVER['DOCUMENT_ROOT'], '', str_replace('\\', '/', $ex->getFile())),
'error line' => $ex->getLine(),
@pavarov
pavarov / SplClassLoader.php
Created June 23, 2022 05:15 — forked from jwage/SplClassLoader.php
Add MIT license.
<?php
/*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
@pavarov
pavarov / sort array
Last active July 29, 2022 13:40
ciryllic sort array
<?php
uasort($employees, function($a, $b) {
$a = mb_strtolower($a['name'], 'utf-8');
$b = mb_strtolower($b['name'], 'utf-8');
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
@pavarov
pavarov / JsonPrettyUnicodePrintFormatter.php
Created October 26, 2022 09:21
Extended json fromatter for monolog
<?php
declare(strict_types=1);
namespace App\Settings\Logger;
use Monolog\Formatter\JsonFormatter;
use Monolog\LogRecord;
class JsonPrettyUnicodePrintFormatter extends JsonFormatter
{