Копирование объектов в PHP

Данную статью меня побудил написать один интересный момент с объектами, который многие новички, освоив азы языка PHP, до конца не понимают. Давайте рассмотрим следующий код: class SomeClass{ public $foo=»bar»; }; $instance = new SomeClass(); // Создаём объект $reference =& $instance; // Создаём ссылку на объект $assignment = $instance; // Новой […]

Порассуждаем о Laravel и ModX

По мере возможностей знакомлюсь с Laravel. Как человек, увлекающийся программированием, чувствую себя как ребёнок в магазине игрушек. Столько интересного. Тут используются почти все современные техноголии — и композер и внедрение зависимостей (Dependency Injection) и полноценная поддержка контроля версий и модульное тестирование и удобная возмножность привыкнуть к стилю работы в командной […]

Разберёмся с Composer

В этой статье я постараюсь раскрыть некоторые моменты, которые часто бывают непонятны начинающим осваивать Composer пользователям. Я не буду рассказывать что такое Composer и как установить. Такой информации уже предостаточно. А вот что такое composer.lock файл или почему команда install не устанавливает указанный пакет смогут ответить не все. Поэтому давайте пробежимся по этим вопросам. […]

Как быстро проверить работоспособность прокси

Как проверить прокси в консоли Linux curl —proxy «user:pass@host:port» https://google.com Такой способ сработает в любом Linux-дистрибутиве с установленной библиотекой Curl. Также этот вариант будет работать в MacOs и даже Windows в cygwin! Однако, может возникнуть ошибка: curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none Если знаете как […]

Установка New Relic для PHP 7.1 в CentOs 7 в docker-контейнере

Что такое New Relic и зачем он нужен в этой заметке рассказывать не буду. А расскажу лишь кратко как установить newrelic agent внутрь docker-контейнера для мониторинга производительности приложения. Т.е. речь о APM — Application Performance Monitoring and Management. Рассмотрим 2 варианта: установку в уже запущенном контейнере и настройку через Dockerfile. В […]

PHP-FPM. НАСТРОЙКА И ТЮНИНГ

php-fpm – PHP FastCGI менеджер процессов. Используется в связке с nginx + php. По моему мнению лучшая связка  для веб-сайтов. Цель Разобраться в параметрах конфигурации, и решить проблему, которая возникла на продакшен сервере с чрезмерным потреблением оперативной памяти. Произошло это потому, что php-fpm породил множество дочерних процессов, которые с радостью съели […]

Как в Guzzle получить финальную ссылку после редиректа

Ещё одна повседневная задача — узнать адрес ссылки на которую был совершён редирект после HTTP-запроса. Однако, при работе с библиотекой Guzzle делается это не очень очевидно. Во-первых, нужно разрешить клиенту совершать редиректы: ‘allow_redirects’ => [ ‘max’ => 5, ‘strict’ => true]. Во-вторых, нужно включить запись редиректов: ‘allow_redirects’ => [ ‘track_redirects’ => true ]. В третьи, […]

Как Clickhouse хранит данные на диске

Это достаточно старая заметка, которую я нашёл в своих архивах и решил выложить. Речь идёт о старой версии Clickhouse 1.1.54198, текущая же версия: 1.1.54381, 2018-05-14. Поэтому какая-то часть выводов может оказаться не актуальной. И да, часть данных эксперимента была потеряна и в этой заметки могут быть пробелы в показаниях. Я провёл […]

Как на PHP скопировать директорию со всеми файлами

Стандартная функция copy в PHP умеет копировать только файл. Для копирования директориии со всем содержимым можно воспользоваться одним из следующих трюков: shell_exec(«cp -r {$src} {$dest}»); Однако, что если нужно как-то дополнительно обработать сами файлы?