Занялся наконец то фундаментальными вещами чтоб подтянуть теоретическую базу.
Сейчас читаю книгу Мэтта Зандстры - PHP: объекты, шаблоны и методики программирования.
Дошел до главы с паттернами и пробую на практике
Написал класс для получения конфигурации используя Синглтон
подскажите пожалуйста косяки какие то есть? Что можно было бы улучшить/исправить
<?php
namespace App\Core;
use Symfony\Component\Dotenv\Dotenv;
/**
* Class Config
* @package App\Core
*/
class Config {
/**
* @var static
*/
private static $instance;
/**
* @var array
*/
private $params = [];
/**
* Config constructor.
*/
private function __construct() {
$dotenv = new Dotenv();
// здесь немного смущает путь к конфигурационному файлу
$dotenv->load( __DIR__ . '/../../.env' );
$this->params = $_ENV;
}
/**
* @return static
*/
public static function getInstance(): self {
// в этом методе можно использовать и static и self Есть ли какая то разница
if ( empty( self::$instance ) ) {
return new Config();
}
return self::$instance;
}
/**
* @return array
*/
public function getParams(): array {
return $this->params;
}
/**
* @param string $key
*
* @return string
*/
public function getParam( string $key ): string {
return $this->params[ $key ];
}
}