Трудовыебудни

Настройка, восстановление и удаление кластера Proxmox

Установка root@pve1pvecm # create -votes 2 cluster root@pve2 ~ # pvecm add pve1 Удаленине кластера Proxmox pvecm delnode nombreNodo Остановка кластера systemctl stop pvestatd.service systemctl stop pvedaemon.service systemctl stop pve-cluster.service systemctl stop corosync systemctl stop pve-cluster # edit through sqlite, check, delete, verify sqlite3 /var/lib/pve-cluster/config.db select * from tree where Read more

Трудовыебудни

Как в Symfony 3.4 получить из сервис-контейнера свойство объекта и передать его как аргумент через Dependency Injection

Следом ещё одна заметка о Symfony 3.4 и мучениях при работе с его сервис-контейнером. Допустим, есть задача проинтегрировать в приложение библиотеку от стороннего разработчика. Архитектура библиотеки конечно не внушает доверия и просить автора привести её в порядок — бесполезно. Иначе говоря, нужно через Service Container Symfony работать с библиотекой, автор которой нарушил максимальное количество принципов объектно-ориентированного программирования и проектирования. Например, в некой библиотеке имеется один единственный класс через который происходит работа. Однако, в некоторых случаях нужно вызывать методы объекта являющегося свойством «главного» класса, например:

$Object->part->call($args);
(далее…)

Трудовыебудни

Как в Symfony 3.4 назначить DI реализацию для интерфейса

Стандартная задача для многих современных фреймворков поддерживающих концепции Service Container и Dependency Injection — попросить контейнер возвращать по имени интерфейса заданную реализацию этого интерфейса.  Например, в Laravel это делается достаточно понятным методом bind:

$this->app->bind(\Lib\Phone\PhoneClientInterface::class, \Lib\Phone\SmsRegist::class);
Однако, в Symfony всё не так просто. Ещё раз повторюсь что Symfony, пожалуй самый не user-friendly PHP фреймворк текущего времени. Многие вещи интуитивно не понятны и требуют постоянного чтения документации и изучения обсуждений в интернетах. Ещё одна простая задача, которая в Symfony 3.4 сделана абсолютно не интуитивно. (далее…)

Трудовыебудни

Шпаргалка по работе с Git

Подборка команд для работы с системой контроля версий git, которые очень пригодятся в повседневной работе программиста. Большая часть команд подойдёт для работы по методологии git flow или feature branches. Однако, часть команд может противоречить воркфлоу вашей компании. (далее…)

Трудовыебудни

Шпаргалка по работе с Selenium, Webdriver и PhantomJS на PHP

Небольшой список рецептов, ссылок и советов которые будут полезны при работе с Selenium, Webdriver или PhantomJS на PHP.

Webdriver PHP API cheatsheet

Как работать с ожиданием элементов

Работа со вкладками, алертами и фреймами

Так работать с Selenium Webdriver через прокси

(далее…)

Трудовыебудни

Laravel Horizon: выполнение задач с продолжительностью более 60 секунд

Ещё одна откровенная тупость в Laravel Horizon — по-умолчанию все задачи выполняющиеся более 60 секунд просто обрываются без какого-либо уведомления или сообщения об ошибке. И чтобы решить эту проблему, нужно воспользоваться парой недокументированных опций в конфигурационном файле. Ниже расскажу как установить более адекватный таймаут для выполнения задач в Laravel Horizon. (далее…)

Трудовыебудни

Laravel Horizon: ошибка 419 Authentication Timeout

Laravel Horizon — новомодная админка для работы с Redis в качестве системы очередей сообщений. Однако, нельзя просто так взять и начать с ней работать. Одна из частых проблем возникающих после установки: часть данных не подгружается через ajax-запросы, а в консоли разработчика появляются ошибки ответа 419. (далее…)