Never Use The :latest Image From Docker Hub

It’s tempting to use the “:latest” tag of an image when you first get started with Docker and pulling images from DockerHub. After all, who wouldn’t want the latest and greatest version of MongoDB, Node.js, Redis, etc, when they start a project? (далее…)

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

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

RoadRunner: PHP не создан, чтобы умирать, или Golang спешит на помощь

За последние годы PHP сильно продвинулся вперёд: улучшился сборщик мусора, повысился уровень стабильности — сегодня на PHP можно без особых проблем писать демоны и долгоживущие скрипты. Это позволило Spiral Scout пойти дальше: RoadRunner, в отличие от PHP-FPM, не очищает память между запросами, что даёт дополнительный выигрыш в производительности (хотя этот подход и  усложняет процесс разработки). Мы сейчас экспериментируем с этим инструментом, но у нас пока нет результатов, которыми можно было бы поделиться. Чтобы ждать их было веселее, публикуем перевод анонса RoadRunner от Spiral Scout. Подход из статьи нам близок: при решении своих задач мы тоже чаще всего используем связку PHP и Go, получая преимущества от обоих языков и не отказываясь от одного в пользу другого. В последние десять лет мы создавали приложения и для компаний из списка Fortune 500, и для бизнеса с аудиторией не более 500 пользователей. Всё это время наши инженеры разрабатывали бекенд преимущественно на PHP. Но два года назад кое-что сильно повлияло не только на производительность наших продуктов, но и на их масштабируемость — мы ввели Golang (Go) в наш стек технологий. Почти сразу мы обнаружили, что Go позволяет нам создавать более крупные приложения с увеличением производительности до 40 раз. С помощью него мы смогли расширять существующие продукты, написанные на PHP, улучшая их благодаря комбинации преимуществ обоих языков. Мы расскажем, как связка Go и PHP помогает решать реальные задачи разработки и как она превратилась для нас в инструмент, способный избавить от части проблем, связанных с моделью «умирания» PHP. (далее…)

Как в 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 <...>
Да, композер беспощадно потребляет ОЗУ и не влезает в установленные лимиты. Обойти можно следующими способами: (далее…)


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

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

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