Skip to content

Instantly share code, notes, and snippets.

@1234ru
1234ru / php-class-storing-default-settings.md
Last active May 9, 2024 14:35
Для хранения настроек по умолчанию можно использовать то же свойство объекта, которое будет их хранить
class SomeClass {
    private $settings = [
        'a' => 1,
        'b' => 2,
    ];

    function __construct($options)
    {
 $this->settings = array_replace_recursive(
@1234ru
1234ru / arrays-unpacking.md
Created May 9, 2024 13:57
PHP: распаковка массивов при передаче функциям

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

function func($x, $a, $b)
{
    print_r(get_defined_vars());
}

$array = [
 // Обратите внимание: сначала идет b, потом a -
@1234ru
1234ru / symbolic-links-vs-direct-assignment-in-cycle.php
Last active March 28, 2024 21:44
Memory usage is unaffected by using a symbolic link instead of cyclic direct assignment
# This script should be run from one of .git/hooks files.
# Current directory will be .git
# git commands don't need directory be changed to
# project root.
# composer command does need.
export composer_exec="php ~/composer"
export command="git diff --name-only $oldrev $newrev -- composer.lock"
read oldrev newrev refname
export was_changed=$($command)
@1234ru
1234ru / misc.md
Last active September 13, 2023 23:42
Разное

mysqldump: записать только структуру БД

mysqldump some_db --no-data --compact > some_file.sql
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `some_table` (
@1234ru
1234ru / mysqlsh.md
Last active September 13, 2023 23:47
Заметки о MySQL Shell

Улучшенная по сравнению с mysql оболочка командной строки - mysqlsh.

https://dev.mysql.com/doc/mysql-shell/8.0/en/

В стандартный пакет сервера MySQL не входит, нужно загружать отдельно. Можно просто распаковать ZIP-архив и, при желании, прописать в PATH.

Соединение с сервером

@1234ru
1234ru / nginx-site-config-example.conf
Last active April 22, 2023 01:47
Пример директив конфигурации nginx для сайта
# $php_upstream должна быть определена в вышестоящей конфигурации
set $router /router.php;
location = /nginx.conf { return 404; }
location ^~ /.git { return 404; }
location ^~ /vendor { return 404; } # для Composer
location = /composer.json { return 404; }
location @router {
// IE11 friendly syntax
var _Local = _Local || {};
_Local.FIAS = function() {};
/**
* @typedef {Object} FIAS~fieldsConfigItem
* @property {string} type - $.fias.types.city|street|etc.
* @property {string|void} selector - input[name="street"]
@1234ru
1234ru / https-ssl.md
Last active January 12, 2023 10:16
Настройка работы сайта по протоколу HTTPS, получение и установка SSL-сертификата

Получение сертификата

Есть множество центров сертификации, которые ищутся по запросу "купить ssl сертификат".

Существует три уровня сертификатов, которые отличаются скрупулезностью проверки запросившей сертификат организации и, соответственно, стоимостью (в несколько раз). При этом технически степень защиты на всех уровнях одинаковая.

Самый простой сертификат - уровня DV - стоит в пределах 2000 руб. на год (январь 2023 г.). Такой сертификат обычно действует и на домен с www, помимо корневого. (Например, GlobalSign AlphaSSL на firstssl.ru - 1872 руб.)

Срок действия сертификата не включает день "до". Например, если срок - до 2023-01-13, то сертификат действителен до 12-го числа включительно.