Complex classes like LoggerConfigurationManager often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use LoggerConfigurationManager, and based on these observations, apply Extract Interface, too.
| 1 | <?php  | 
            ||
| 15 | class LoggerConfigurationManager  | 
            ||
| 16 | { | 
            ||
| 17 | /**  | 
            ||
| 18 | * @var Container ログ設定コンテナ  | 
            ||
| 19 | */  | 
            ||
| 20 | private $logContainer;  | 
            ||
| 21 | |||
| 22 | /**  | 
            ||
| 23 | * @var Container IOコンテナ  | 
            ||
| 24 | */  | 
            ||
| 25 | private $ioContainer;  | 
            ||
| 26 | |||
| 27 | /**  | 
            ||
| 28 | * @var array<string> ログ設定情報  | 
            ||
| 29 | */  | 
            ||
| 30 | private $configMap;  | 
            ||
| 31 | |||
| 32 | /**  | 
            ||
| 33 | * Constructor  | 
            ||
| 34 | * @param mixed $config ログ設定  | 
            ||
| 35 | * @throws LoggerException  | 
            ||
| 36 | */  | 
            ||
| 37 | 141 | public function __construct($config)  | 
            |
| 63 | |||
| 64 | /**  | 
            ||
| 65 | * 設定を読み込む  | 
            ||
| 66 | * @throws LoggerException  | 
            ||
| 67 | */  | 
            ||
| 68 | 141 | public function load()  | 
            |
| 77 | |||
| 78 | /**  | 
            ||
| 79 | * ログ設定を返却する  | 
            ||
| 80 | * @return Container ログ設定  | 
            ||
| 81 | */  | 
            ||
| 82 | 141 | public function getConfig()  | 
            |
| 86 | |||
| 87 | /**  | 
            ||
| 88 | * ログレベルを読み込む  | 
            ||
| 89 | * @throws LoggerException  | 
            ||
| 90 | */  | 
            ||
| 91 | 141 | private function loadLogLevel()  | 
            |
| 102 | |||
| 103 | /**  | 
            ||
| 104 | * ログ保存先パスを読み込む  | 
            ||
| 105 | * @throws LoggerException  | 
            ||
| 106 | */  | 
            ||
| 107 | 141 | private function loadLogFilePath()  | 
            |
| 121 | |||
| 122 | /**  | 
            ||
| 123 | * ログローテートサイクルを読み込む  | 
            ||
| 124 | * @throws LoggerException  | 
            ||
| 125 | */  | 
            ||
| 126 | 141 | private function loadRotateCycle()  | 
            |
| 134 | |||
| 135 | /**  | 
            ||
| 136 | * ログローテートサイズを読み込む  | 
            ||
| 137 | * @throws LoggerException  | 
            ||
| 138 | */  | 
            ||
| 139 | 141 | private function loadRotateSize()  | 
            |
| 152 | |||
| 153 | /**  | 
            ||
| 154 | * アプリケーション名を読み込む  | 
            ||
| 155 | */  | 
            ||
| 156 | 141 | private function loadApplicationName()  | 
            |
| 164 | |||
| 165 | /**  | 
            ||
| 166 | * ロガーフォーマットを読み込む  | 
            ||
| 167 | */  | 
            ||
| 168 | 141 | private function loadFormat()  | 
            |
| 178 | |||
| 179 | /**  | 
            ||
| 180 | * ログローテートサイクルを時間に変換  | 
            ||
| 181 | * @param string ローテートサイクル  | 
            ||
| 182 | * @return int ローテート時間  | 
            ||
| 183 | * @throws LoggerException  | 
            ||
| 184 | */  | 
            ||
| 185 | 14 | private function cycle2value($cycle)  | 
            |
| 210 | |||
| 211 | /**  | 
            ||
| 212 | * ログレベルを数値に変換  | 
            ||
| 213 | * ログレベルはWebStream独自、PSR-3両方対応  | 
            ||
| 214 | * @param string ログレベル文字列  | 
            ||
| 215 | * @throws LoggerException  | 
            ||
| 216 | * @return int ログレベル数値  | 
            ||
| 217 | */  | 
            ||
| 218 | 141 | private function toLogLevelValue(string $level)  | 
            |
| 244 | }  | 
            ||
| 245 | 
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.
This is most likely a typographical error or the method has been renamed.