What are some best practices for storing and accessing instances of a class in PHP, particularly in the context of a Minecraft plugin?

When working with a Minecraft plugin in PHP, it is important to properly store and access instances of a class to ensure efficient and organized code. One common best practice is to use a singleton pattern to create a single instance of the class that can be accessed globally throughout the plugin. This helps prevent unnecessary duplication of objects and ensures consistent data access.

class MyPlugin {

    private static $instance;

    public static function getInstance() {
        if (self::$instance === null) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    private function __construct() {
        // Constructor code here
    }

    // Other methods and properties here
}

// Access the singleton instance
$pluginInstance = MyPlugin::getInstance();