Brainbao, по сервисам я имел ввиду что-то типа такого.
<?php
class MyOopClass
{
public function __construct(
private LegacyGlobalVars $globalVars
) { }
public function method()
{
$this->globalVars->getVar1();
}
}
interface LegacyGlobalVars {
public function getVar1(): string;
public function setVar1(string $var1);
public function getVar2(): string;
public function setVar2(string $var1);
}
class LegacyGlobalVarsImpl implements LegacyGlobalVars {
public function getVar1(): string
{
return $GLOBALS['var1'];
}
public function setVar1(string $var1)
{
$GLOBALS['var1'] = $var1;
}
...
}
Работать с этими переменными через какую то абстракцию. Если это возможно то логически их разделить на несколько Интерфейсов и инжектить раздельно. Тогда сразу будет понятно, от чего конкретный класс зависит и при рефакторинге избавляться от них постепенно
Как вариант используя DI инжектить нужные переменные в конструктор своих классов которые вы пишете в ООП стиле. (при условии что их нужно только "читать")
Если их надо еще записывать, то наверно делать это через отдельный сервис.
nekufa: к сожалению на вин 10 home из за отсутствия поддержки hyperV приходится использовать docker-toolbox, вместо нормальной версии и там нет таких настроек.
Под вин 7 не пользовался но под вин 10 home были трудности.
Проблема с правами на "прокинутую папку" решилось тем что разместил проект внутри свой домашней папки c:\Users\myname\project
Вторая проблема была с путями, нормального решения не нашел, но заработало когда отказался от относительных путей вместо ../src использовал полный c:\Users\myname\project\src
Работать с этими переменными через какую то абстракцию. Если это возможно то логически их разделить на несколько Интерфейсов и инжектить раздельно. Тогда сразу будет понятно, от чего конкретный класс зависит и при рефакторинге избавляться от них постепенно