What are some best practices for handling system variables in PHP classes like "Config" and "Registry"?
When handling system variables in PHP classes like "Config" and "Registry", it is best practice to use constants for defining configuration values and use a singleton pattern for managing global variables. This helps in centralizing configuration settings and ensures that variables are easily accessible throughout the application.
class Config {
const DB_HOST = 'localhost';
const DB_USER = 'root';
const DB_PASS = 'password';
}
class Registry {
private static $instance;
private $data = [];
private function __construct() {}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
public function set($key, $value) {
$this->data[$key] = $value;
}
public function get($key) {
return $this->data[$key] ?? null;
}
}
// Example usage
$config = Registry::getInstance();
$config->set('site_name', 'My Website');
echo $config->get('site_name'); // Output: My Website