Как откатить версию composer для PHP

В августе произошла странная вещь,всеми любимый composer получил 1.7 версию. Однако, не всё так гладко, некоторые проекты перестали корректно инсталлироваться. Например, вывод команды composer install мог внезапно выдать ошибку:

Пивоварня Grainfather — инструкция на русском

К сожалению, не существует инструкции к пивоварне Grainfather на русском языке. Но я поделюсь своими советами и наблюдениями при работе с этой автоматической пивоварней, а точнее сусловарней. Но так уж и быть, большинство терминов я постараюсь перевести самостоятельно. Важно! Все советы описаны для пивоварни 3-го поколения с Bluetooth и противоточным […]

Как на PHP обрезать GET-параметры в url

Допустим, есть ссылка вроде https://evilinsider.ru/admin/post-new.php?attempt=1. Как убрать из неё всё, что идёт после знака вопроса? Сразу предлагаю рассмотреть самый простой и самый быстрый способ: $url = strtok($url, ‘?’); В результате чего получится: https://evilinsider.ru/admin/post-new.php

Слияние массивов в PHP, почему лучше array_replace() а не array_merge()

Распространённая задача — сделать слияние значений нескольких массивов. Однако, в PHP это можно сделать разными способами и с разным конечным результатом. Почему-то большинству программистов первым на ум приходит способ с использованием функции array_merge(). Однако, ранее я уже писал о некоторых подводных камнях в её использовании совместно с http_build_query(). Следующий способ […]

Как в docker-compose сменить project name

Всем известно, что после выполнения команды docker-compose up пачка контейнеров создаётся в так называемом стеке, а все контейнеры получают префикс с именем стека.По-умолчанию за имя стека берётся имя директории, в которой происходит запуск. Но это не всегда подходит. На данный момент мне удалось найти только один способ переопределения имени стека.

Как в git создать коммит с выборочными изменениями

Допустим, вы дисциплинированный и аккуратный программист. Все правки кода строго привязываете к задачам и ничего лишнего и не относящегося к задаче в коммит не попадает. Но как быть, если в файл были внесены правки относящиеся сразу к нескольким задачам? Можно ли теперь изменения одного файла разделить на несколько коммитов? Можно:

Что такое Laravel Backpack и как им пользоваться

Это удивительно, но на русском языке до сих пор нет ни одного материала о работе с пакетом Backpack для фреймворка Laravel. Исправляю это недоразумение. Итак, существует такой проект: https://backpackforlaravel.com/, и страница на github: https://github.com/Laravel-Backpack. По заявлению авторов, это: The most popular admin panel software for Laravel. Или на русском: Самая популярная панель администратора для Laravel. […]

Настройка стран в Tor Browser

Как выходить в сеть Tor через IP адрес определённой страны Для того чтобы задать страну выхода в сеть в Tor откройте файл Tor Browser\Browser\TorBrowser\Data\Tor\torrc для редактирования и добавьте в конец файла следующие строки: ExitNodes {US,RU} StrictExitNodes 1 Где {US} — страны для выхода в сеть.

Best practices по контейнерам от Google

один контейнер — один процесс и его сабпроцессы нужно уметь обрабатывать сигналы правильно обязательно использовать докер кэш чистить контейнер от всего ненужного по-максимуму делать контейнер как можно меньше правильно тегировать и версионирвать контейнеры аккуратно выбирать родительский паблик image

Как в Guzzle отправить multipart запрос с дополнительными полями

Допустим есть задача — отправить HTTP-запрос с бинарным файлом на сторонний сервис. Рассмотрим решения на примере клиентской библиотеки Guzzle. $client->request(‘POST’, ‘/post’, [ ‘multipart’ => [ [ ‘name’ => ‘avatarka.jpg’, ‘contents’ => fopen(‘/path/to/file’, ‘r’), ‘filename’ => ‘custom_filename.jpg’ ], ] ]);