| 
									
										
										
										
											2025-04-24 10:49:52 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace App\Core; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ConfigLoader | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2025-04-24 11:30:35 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * @var string|null | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     private static $configPath = null; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-24 10:49:52 +00:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Load configuration array from a set of possible file locations. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param string[] $locations | 
					
						
							|  |  |  |      * @return array | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public static function loadConfig(array $locations): array | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $configFile = null; | 
					
						
							|  |  |  |         foreach ($locations as $location) { | 
					
						
							|  |  |  |             if (file_exists($location)) { | 
					
						
							|  |  |  |                 $configFile = $location; | 
					
						
							|  |  |  |                 break; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (!$configFile) { | 
					
						
							|  |  |  |             die('Config file not found'); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-04-24 11:30:35 +00:00
										 |  |  |         self::$configPath = $configFile; | 
					
						
							| 
									
										
										
										
											2025-04-24 10:49:52 +00:00
										 |  |  |         return require $configFile; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-04-24 11:30:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * @return string|null | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public static function getConfigPath(): ?string | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return self::$configPath; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-04-24 10:49:52 +00:00
										 |  |  | } |