PHP Composer как предотвратить создание symlink на локальные файлы

Всем известно, что Composer позволяет выкачивать зависимости не только с packagist и различных git-хостингов, но и просто из локальной директории. Но в таком случае существует несколько способов, как именно файлы попадут в директорию vendor. По-умолчанию это может быть создание символической ссылки на директорию, что может не подойти в ряде ситуаций. Например, при мульти-этапной сборке Docker-образа в которой директория vendor из одного образа копируется в другой образ. В результате чего vendor будет скопирован просто как символическая ссылка без самой директории с необходимыми файлами. Решить эту проблему можно так: (далее…)

Как в Linux консоли добавить в файл сразу несколько строк

Тоже распространённая задача — вставить в файл из консоли сразу несколько строк. Но есть нюанс, в зависимости от выбора способа вставки командный интерпретатор будет, пытаться заменить переменные на их значения, или нет. Т.е. если в строке для вставки присутствует символ $, то нужно выбрать правильный способ для описания команды. (далее…)

Примеры команды sed для работы со строками файлов

Sed умеет очень круто обрабатывать файлы. Давайте рассмотрим несколько примеров. Например, нужно вставить новую строку в файл после определённой линии:

sed '3 a new line content' my.txt
Данная команда добавит новую строку в файл my.txt с содержимым new line content усразу после текущей третей строки в файле. (далее…)

Как в Linux вывести файл с нумерацией строк

В Linux есть всем знакомая команда cat для вывода содержимого файла. Но как быть, если нужно отобразить тот же файл, но чтобы пронумеровать каждую строку по порядковому номеру? Cat умеет и это:

cat -n my.file
(далее…)

Как в Guzzle указать версию TLS/SSL

Иногда нужно делать HTTPS запросы к внешним ресурсам с нестандартными параметрами подключения. Т.к. библиотека Guzzle является обёрткой над Curl, то делается это так: $this->guzzle = new Client(['timeout' => 5, 'base_uri' => $uri, 'curl' => [ CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_3 ]]);

Composer PHP Fatal error: Allowed memory size

Пакетный менеджер Composer внезапно может удивить и вместо установки или обновления пакетов выдать сообщение об ошибке:

PHP Fatal error: Allowed memory size of XXXXXX bytes exhausted <...>
Да, композер беспощадно потребляет ОЗУ и не влезает в установленные лимиты. Обойти можно следующими способами: (далее…)

Как в PHP декодировать содержимое email-письма

При чтении письма из электронного ящика при помощи функции imap_body его содержимое будет частично закодировано. Раскодировать его достаточно просто, нужно лишь воспользоваться функцией quoted_printable_decode. В некоторых сложных случаях потребуется дополнительное декодирование кодировки: (далее…)

Как подсчитать доход с займов по кредитным лимитам в сервисе Webmoney Debt

Так случилось, что в разделе «Займы, которые я выдал» (https://debt.web.money/Credits.aspx) сервиса Webmoney Debt отсутствует экспорт отчёта. А вам как назло хочется получить все данные с этой страницы в виде Excel-таблицы и провести аналитику. К счастью это можно сделать, выполнив на странице JavaScript сценарий. В сервисе используется библиотека jQuery и сделать это будет легко и просто. Привожу пример скрипта для подсчёта суммы выданных займов, суммы для возврата и разницы между ними: (далее…)

Грандиозный FAQ по Go Lang

Какие максимальные значения int и uint в Go?

Поскольку целочисленные типы используют двоичную арифметику, можно вычислить их предельные значения подобных образом:
const MaxUint = ^uint(0) 
const MinUint = 0 
const MaxInt = int(MaxUint >> 1) 
const MinInt = -MaxInt - 1
(далее…)


Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть