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 / git.md
Last active April 16, 2024 17:17
Полезное при работе с git

Отмена изменений

Вернуть файл к состоянию последнего коммита (аналог svn revert) можно командой git checkout файл. Уточнение: файл будет возвращен к зафиксированному состоянию, если после коммита была явно дана команда git add файл. То есть, откатываются изменения, сделанные после git commit или git add. Если файл был удален, то нужно указать версию; например git checkout HEAD файл.

Так можно откатить и всю папку (в т.ч. рабочий каталог): git checkout ..

Для отмены изменений на уровне рабочей копии служит команда git reset. Она "отматывает" историю изменений назад до указанного момента (в том числе отменяет коммиты), не трогая физические файлы:

  • git reset файл
@1234ru
1234ru / nginx-php-win.md
Last active April 3, 2024 04:53
Установка nginx и PHP на Windows

Установка nginx

  1. Скачиваем отсюда https://nginx.org/ru/download.html и распаковываем куда-нибудь.

  2. Дальше читаем тут https://nginx.org/ru/docs/windows.html ВНИМАНИЕ: команду start nginx обязательно даем прямо из каталога, в котором лежит nginx.exe, в противном случае при дальнейшей работе будут ошибки (все пути в конфигурации прописаны как относительные, только поменяв их все, можно запускать откуда угодно). Вообще рекомендуется держать консоль открытой в этом каталоге до самого конца выполнения инструкций, однако для работы nginx это необязательно - если её закрыть, он продолжит работать.

  3. Открываем http://localhost/ - должно заработать.

@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

Загрузка сервера MySQL и подготовка к запуску

  1. Скачиваем Community Server в виде zip-архива.
    (Если пугают новшества последних версий, можно остановиться на 5.7. Например, 5.7.26-winx64.)
    На странице загрузки можно перейти по ссылке No thanks, just start my download в нижней части страницы.

  2. Распаковываем куда-нибудь.

  3. Удаляем папку lib (она содержит исходный код для самостоятельной компиляции и при работе сервера не требуется). Также можно удалить файлы bin/*.pdb (они нужны только для отладки исполняемых файлов MySQL и при обычной работе не требуются).

# 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 / git-bash-win.md
Last active February 12, 2024 14:24
Git и bash под Windows

Установочный пакет можно скачать здесь https://git-scm.com/download/win (см. также https://gitforwindows.org/).

Далее будет рассмотрена работа с portable-версией.

bash

В пакете присутствует не только сам git, но и средства для работы в командной строке, которые позволяют сделать рабочий процесс практически полностью идентичным таковому в Unix-системах. (При этом, в отличие от подсистемы Windows for Linux, нет ни необходимости устанавливать дополнительные компоненты ОС, ни жёстких требований к новизне версии Windows).

В первую очередь, это оболочка bash, которая поддерживает цвета и комбинации клавиш, а также сопутствующие программы из числа наиболее часто используемых в Linux (ls, grep, curl, vim, ssh(!) и пр.) делают возможными многие привычные операции.

@1234ru
1234ru / unix-shell.md
Last active February 9, 2024 22:02
Полезное для работы в командной строке unix

Командная строка

Переключение между программами

Полезно, например, при редактировании конфигурации веб-сервера: удобно, внеся изменения, тут же дать команду для перезапуска, а потом вернуться в редактор на то же самое место, где остановился. Делается это с помощью оператора & и команды fg. Пример:

  1. vi somefile & - запускаем редактор vi в фоновом режиме
  2. fg - переключаемся на vi
  3. находясь в интерфейсе vi, нажимаем Ctrl+Z и возвращаемся в командную строку
  4. чтобы попасть из командной строки в vi, снова набираем fg